Detect and diagnose hung voice workers from outside the event loop
A voice worker can hang without exiting. The container stays running and the deploy looks healthy while health checks time out, no calls start and the remaining runners fill up. An in-process asyncio heartbeat freezes with the loop, and an on-failure restart policy only replaces …