I can't quite tell if my perception of this trend is skewed by my current perspective or if there are more people exploring this model of programming. IMHO, some things get much harder to reason about without some good tools.
The main problem with threads is the relative complexity of the programming and debugging model. I don't really see a complete migration from threads to async, I see a migratino from threads to a multitude of models, where async is just one of them.
In my case, I ended up here by trying to dynamically shift where I'm applying the work load in the search space without pruning off an answer.
The advantage of generators as threads is that they work with other Python implementations like Jython and IronPython. It would be nice if whatever Python adopted in the core wasn't still inferior to greenlet based libraries.