scheduler: only wake the event loop thread from a non-pool thread in a threaded region (#64731)
Outside a threaded region the event loop thread waits for the iolock and then runs
the loop, so it never leaves the loop to the iolock holder. Skip the wake there, so
threads outside the pools only pay for it when a threaded region needs the handoff.
The region is read after the unlock, since a region entered before that could
otherwise park on the iolock with nobody left to wake the loop.
Assisted-by: Claude Code (Opus 5.5)