Typed wrapper around a CDK OverlayRef that exposes a close result stream.
Closes on Escape and on a backdrop click (unless disableClose), restores
focus to the element that opened it, and surfaces its open state as a signal
beside the RxJS afterClosed$.
Closes the overlay, emitting result on afterClosed$, disposing the CDK
ref, and restoring focus. Idempotent - a second call (e.g. Escape after a
scope teardown already closed it) is a no-op.