fix: address Copilot review feedback
- Use wait_timeout_while instead of wait_timeout to guard against
spurious condvar wakeups that could kill the child prematurely
- Support numeric killSignal values (e.g. 9) by falling back to
parse::<i32>() when signal_str_to_int doesn't recognize the string
- Make _pid and _killedByTimeout non-enumerable on the output object
instead of deleting them in outputSync(), so the node:child_process
polyfill can still access them
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>