I like how you connected this to real request flow. When I started building backend systems, I assumed async = automatic scalability too. Then I shipped a feature with heavy JSON parsing and watched the whole server freeze under load.
Now I always offload CPU-heavy work to worker threads. The Event Loop is fast, but only if you keep it free.