- Add ProcessGuard RAII struct for deterministic process cleanup
- Implement wait_with_timeout helper to prevent indefinite blocking
- Replace all bare child.wait() calls with bounded timeouts
- Update all test cases to bind to port :0 (avoid collisions)
- Add StdioConfig enum for proper pipe handling (Piped/Null)
- Add read_initial_output_with_timeout for safe pipe reading
- Ensure no orphaned processes via RAII cleanup on Drop
Closes bf-119ys
Verification: notes/bf-119ys.md