Flake batch 11: watcher-drain rewind test waits by time and yields
#911's merge-queue run failed macOS libtest on runtime_drain::tests::budget_interrupted_stage_rewinds_when_unbind_lands_mid_stage (run 40609485775): after rebind the test called the bounded drain 32 times in about 150 ms, each reporting more work, and gave up.
The test's watcher is a manual channel with no platform watcher, so the more-work state can only come from the retained continuation re-parking. When the route is bound, the only park that makes no progress is a non-blocking LSP-manager try-lock while the language-server applicability worker (started by the first batch) holds it. The test's tight loop with no yield can starve that worker on a loaded runner. Production drains run on a cadence and retry, so they're unaffected.
The loop now yields between slices and is bounded by a 30 s deadline instead of a 32-slice count, matching the neighbouring rescan test. It still proves the replay finishes and both markers are indexed. Isolated runs passed before and after on macOS and Linux; the original failure needs shard load and was not reproduced. Test-only.
Summary by cubic
Fixes the flaky runtime_drain::tests::budget_interrupted_stage_rewinds_when_unbind_lands_mid_stage test that failed under shard load on macOS.
The bounded drain loop no longer spins up to 32 slices without yielding; it yields between slices and gives up after a 30 s deadline, matching the neighbouring rescan test. The tight loop could starve the language-server applicability worker that holds the manager try-lock, the only zero-progress park in the replay. The test still proves the replay finishes and both markers are indexed. Test-only, and adds the search-quality descriptor for flake batch 11.