Package subreaper installs platform-specific orphan-process cleanup
for MachineProxy's local process tree. It receives lifecycle context
from the command runtime, and feeds the operating system with subreaper,
procctl, or job-object setup plus SIGCHLD reaping where available.
Reap collects zombie child processes for the lifetime of ctx. It
listens for SIGCHLD and drains all finished children on each tick.
When run after Setup it also reaps descendants reparented to us via
subreaper / procctl, keeping the process table clean.
Setup makes the current process the "child subreaper" so that
double-forked grandchildren are reparented to us instead of pid 1.
Combined with Reap this keeps the process table clean.