f65777c0

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

mutation: swallow ECHILD in stopProcess cleanup

waitExitCode reaps the child when it exits naturally, but bracket's
cleanup then runs stopProcess which also tries to waitForProcess on the
already-reaped pid and throws 'waitForProcess: does not exist (No child
processes)'. The exception propagates out of mapConcurrently and crashes
the whole harness after the first naturally-exiting mutation child.

Swallow that specific cleanup-time IOException. The bracket is there to
guarantee SIGTERM on the timeout-wins branch and on async exceptions;
when the child has already exited, there is nothing left to clean up.