What a minefield. If you haven’t seen it, there’s a great talk from David Beazley on YouTube discussing threads, event loops and co-routines. It’s worthwhile just to see someone give a presentation on coding live with Emacs.