The error you described, i believe that its due to early return of your application.
While uninstalling it is advisable to wait for the process to complete its execution.
The example you have given, closes and exits the application thread, which of course invalidates the uninstall process.
Try using
ProcessStartInfo startInfo = new ProcessStartInfo(
"cmd.exe",
string.Format("/c start /MIN /wait msiexec.exe /x {0} /quiet", guid));
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
Process process = Process.Start(startInfo);
process.WaitForExit();