cancellingTheCollectorScopeCompletesDepartures

Cancelling the collector's scope completes the collection, and the source can then be collected again.

The second round is the only handle common code has on "does not leak a listener": a source that left a registration behind usually refuses or wedges the next subscription. It cannot see a registration that is merely orphaned but tolerant of a sibling — see the class KDoc.

Runs on both arms unbranched. An emptyFlow() source completes before the cancellation rather than because of it, which satisfies this trivially; that is not a gap, it is what "has no leave signal" means, and that arm's real obligation is anArrivalIsNeverReportedAsADeparture.