fix: Preserve PTY graceful shutdown semantics (#12624)
## Summary
- make graceful shutdown behavior explicit on each child handle instead
of branching on transport details inside the shutdown path
- avoid double SIGINT delivery for PTY-backed wrapper processes while
preserving process-group cleanup semantics
- add regression coverage for PTY wrapper signal forwarding in
`turborepo-process`
## Testing
- cargo test -p turborepo-process
- CARGO_INCREMENTAL=0 cargo test -p turbo --test graceful_shutdown_test