> 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.
Huh? I python you have to choose either threads or asynchronous/await? Why not combine both of them? I am so confused. C# allows for both to be combined quite naturally. And JavaScript as well allows for workers with async/await.