It is a lot of work with the current API, to for example get a process attached to a job before it has a way to spawn child processes. It requires native interop code to create the processes suspended and reflection to set up the IO streams on the process object. If the Process class supported some way to create the process suspended, these scenarios would be much simpler. Maybe an overload to `Start`, with a bool suspended` flag, returning some object with a `ResumeMainThread` method and a `Process` property?