Improve process group intialisation
Previously we relied on spawning a long-running [sleep] process in order
to have a process to make the process group leader. The issue was that
Eio was eager to reap child processes but that meant we could not
attach a bunch of processes in a pipeline to the pid of the first
process without race conditions. Now we explicitly allow users to hold
off on reaping children until a promise is resolved.