Sei por experiência de que a resposta correta é a letra D e o fato do resultado ser um número e o C# realizar a cópia do valor ao invés de passar como ponteiro quando chamado em outros scopes ajuda a saber a resposta.
Porém: Levando em conta a resposta do professor na letra B: "e esta thread não acessa as variáveis usadas fora do escopo da função FatorialEmParalelo". Em tese, o que está na Thread está fora do scopo da thread principal. Por conta disso, mesmo com um t_calculo.wait() não era para termos o resultado da função justamente pelo fato de estar fora do escopo.
E justamente pensando em forma de Scopo: Na aula, utilizamos o método parecido com: resultados.add(resultado_processo). Por ser um objeto Lista, o C# se utiliza do valor via ponteiros. Neste caso, caso o programa principal não feche por algum motivo, o valor da variável seria atualizado porém sem ser mostrado (pois a implementação que se utiliza do dado já teria rodado). Ideia Testada e ocorre isso mesmo.