Eu encontrei o problema. Meu símbolo decimal nas configurações regionais também era uma vírgula (europeu), assim, mesmo quando meu separador de lista era uma vírgula, o CSV foi salvo com ponto e vírgula. Agora eu mudei meu símbolo decimal para um ponto e agora o arquivo CSV é criado corretamente com vírgulas como separadores. Eu testei isso duas vezes e agora sei que deve haver uma exceção: se o símbolo decimal é uma vírgula, então o separador de lista será um ponto-e-vírgula, mesmo se for definido de outra forma.