In new code I try to use threads, but certain things like yield which rely on async are simply too common and useful to stop using.
So far in production if I need to use multiple cores, I use multiple processes and design apps that way. The discipline this imposes does seem to result in better apps than I wrote in an environment like Java with tons of threads.