_pendingDeferredLaunchGateResume tracks whether the interface should signal the
launch gate after hook-ready notification. When set, the session startup flow
sends the gate release after confirming hook ready state rather than leaving the
gate decision to the controller.
DisarmTeardownProtectionBestEffort is called on window close to ensure the
controller releases any held gate before the interface exits, preventing the
target process from hanging indefinitely on a closed interface session. Refs #16.