0226d1162e
Reverts the tooltip half of 4798994dc; keeps the idle-cost scenario. Lazily mounting Radix on first hover measured well (105k -> 26k TooltipProvider renders per drag) but broke 18 tests across 12 files. Those tests are not incidental: the repo has an established convention of asserting `[data-slot="tooltip-trigger"]` at mount to prove a control carries a tooltip, and deferring the mount invalidates all of them at once. There is also a real behavior risk the convention was protecting — `asChild` puts the slot on the button element itself, so arming REPLACES the node, which is exactly the kind of identity change that breaks focus restoration and ref-holding call sites. A 4x cut in tooltip churn is not worth reworking every tooltip assertion in the app plus taking that risk, on a component with ~107 call sites. If it's worth revisiting, the right shape is probably making TooltipProvider itself cheap (one app-level provider) rather than deferring the mount per call site — that preserves the DOM contract these tests encode. The genuine win in this branch stands on its own: the $layoutTree subscription fix (commits 83 -> 12 on a sash drag) is unaffected.