A Curious Course on Coroutines and Concurrency (2009) [pdf]
dabeaz.com
dabeaz.com
For instance, does Python still have the Global Interpreter Lock (GIL) issue? It is the reason Python was (at least once) unsuited for concurrent programming.
It was still better than NodeJS which has no intra-process threading; and generators (coroutines) are also not fully supported (no yielding allowed within functions called from a generator).
You aren't. Concurrency is a code-design/code-meaning issue. It has nothing to do with runtime execution. For example nice concurrency primitives lets you avoid callback hell.