The issue is that proc_get_status() isn't very useful as a shell is in between.
Removed the shell for windows and added a third pipe for exit status watching on Unix. This also guarantees that the process will always have been properly closed when we resolve our Promise.