2. async/await it just an API layer on top of a framework. Thus there is no such thing as raw async/await, it has to be used with a framework of some sort (e.g. Python's built-in asyncio).
3. gevent patches the socket library. Terrible idea. Don't use it.
4. What protocols do you need? Twisted probably has the most implemented, but asyncio and tornado have a bunch too, and not always the same ones.
Protocols - HTTP + some custom stuff on top of TCP.
But that's just me.
Given limited protocol needs, I suggest skimming docs for asyncio, Twisted, and Tornado and seeing which seems to make the most sense to you. For Twisted HTTP client and server to look at are Treq (https://treq.readthedocs.io/en/release-17.8.0/) and Klein (https://klein.readthedocs.io/en/latest/).
Then I would likely switch to gevent or tornado, because more people are involved in those projects.