TLDR: BEAM VM uses busy waiting under the hood to achieve fast response time when dealing with requests. you can disable it by setting a few options in the VM.
Edit: Interesting thing here is that there's no significant latency difference when toggling busy/wait, so not sure why that's the default.
The only time you'd want to disable it is if you're under a CPU quota, or if you have some other important OS process that's not getting enough CPU.
All that said... A while back, inspired by an argument here on HN, I tested waking up a program 100 times per second and I was shocked that it didn't really show up in CPU usage nor power usage. Maybe an easier way to get started with async code, since you don't have to mess with wakers