Solid take, though I'd push back on uvloop being non-negotiable. We benchmarked it heavily at my last gig and the gains only mattered when we were CPU-bound on event loop operations, which was maybe 5% of our workloads. Most of the time we were I/O waiting anyway.
anyio is the real win here. TaskGroup cancellation semantics saved us from subtle bugs where tasks would orphan during shutdown. That said, don't sleep on structured concurrency at the architectural level. Proper timeout handling and cancellation scope composition matters more than picking the right loop.
What's your experience with backpressure in async services? That's where I see most people actually fail.