Отображается диалоговое окно отладчика JIT, потому что приложение C ++ каким-то образом зависло. Пока диалоговое окно открыто, процесс все еще присутствует (но приостановлен), что означает, что класс Process не будет считать его "завершенным" до тех пор, пока диалог JIT не будет закрыт или присоединенный отладчик не завершит процесс.
Вы можете отключить отладку JIT на компьютерах, на которых возникла проблема (я думаю, , что отключение службы диспетчера отладки машины может отключить отладку JIT), позволяя приложению аварийно завершить работу и умереть (и, следовательно, сообщить как "выход"), или (и я не знаю, как бы вы поступили с этим), посмотрите, можете ли вы заставить свое приложение C # хоста присоединяться в качестве отладчика для приложения C ++ и получать уведомления о сбое из приложения C ++ прекратить его действие, а затем действовать в соответствии с информацией, которую он закончил.