* fix(hopper): keep an observed launcher exit over a later cancellation `#connect` projected every interrupted wait as `#startupInterruption` without consulting the launcher the owner already held, so a launcher that exited 3 before the caller aborted was reported as `HopperCancelledError`. An exit or signal the owned process already holds is now projected as the physical startup failure first; a cancellation observed before any exit is unchanged, and successful exits keep their previous behaviour. Fixes #5429 * fix(hopper): arbitrate startup exits through process owner --------- Co-authored-by: XiaoBinGan <[email protected]> Co-authored-by: morluto <[email protected]>