This is a persistent misunderstanding about async... it is not generally more efficient than non-async code. In fact, the overhead of async may slow things down. (There can be other downsides as well. E.g. debugging may be more difficult.)
For it to help, you need to have something better for the current thread to be doing than waiting for whatever it is you're waiting for.
Whatever that is, another worker thread could be doing it, so what we're really talking about is that async may let you reduce the number of threads you're using.
(Async is so useful in JS because it lets you reduce the number of threads to one, which lets you sidestep all kinds of hairy issues.)
That might be good enough, depending on your situation, to overcome the downsides of async worthwhile. But it may very well not.
Anyway: don't use async because it's "more efficient".