После запуска нового процесса его время жизни не зависит от текущего приложения.Если вы хотите, чтобы артефакт выполнения был напрямую связан со временем жизни текущего приложения, используйте потоки.
Если вы уверены, что хотите создать дочерний процесс, а затем прекратить его, вам нужно его убить:
Process proc = new Process();
proc.StartInfo.FileName = @"C:\program files\MyProgram\start.exe";
proc.StartInfo.Arguments = Application.ExecutablePath;
proc.Start();
// When terminating:
proc.Kill();
proc.WaitForExit();
Application.Exit();
Однако я не рекомендовал бы выше для большинства сценариев., поскольку это может привести к повреждению данных, если дочерний процесс завершится во время выполнения критической операции (например, сохранения в файл).