8288129475
_drain_polling_connections still bounded its shutdown()/initialize() with asyncio.wait_for (#66377), while its sibling the general-pool drain moved to _await_with_thread_deadline (#98094). httpcore's pool close runs under AsyncShieldCancellation, so a cancellation-resistant close keeps wait_for pending forever even after its timeout fires — the tracked _polling_error_task wedges and every escalation gate behind it stalls. Use the same wall-clock deadline helper (cancel + abandon, no cancel-await) on both polling-drain awaits, and add a regression test whose close swallows cancellation — the shape the existing cancellable-hang test cannot catch.