Antes: proc.Start()
Adicione um método de manipulador. Por exemplo:
process.OutputDataReceived += (sender, a) => Console.WriteLine(a.Data);
e substitua esta linha:
ret = proc.StandardOutput.ReadToEnd()
com isso:
process.BeginOutputReadLine();
Como alternativa, você também pode simplesmente tentar adicionar apenas process.BeginOutputReadLine()
após ret = proc.StandardOutput.ReadToEnd()
em seu código original (so adicionando apenas uma linha com a chamada para BeginOutputReadLine). Isso deve impedir um deadlock no fluxo StandardError.
Boa sorte!