reworked pid status gathering using `waitpid2`

Also removed Errno::ENOENT handling as it is not needed anymore
with moving to posix_spawn.  Finally, moved status gathering to
after the wait pid call.