All these subtleties and gotchas signify, to me, a shit implementation and a fragmented interface. The exact opposite of the Zen of python.
A more charitable view is that they signify an API that evolved from callback-based APIs like Twisted over many years and made nicer APIs like curio or trio only possible (whose features/insights slowly feed back into asyncio but backward compat keeps the warts around).
But even without docs I understood it faster than asyncio and it is more pleasant to use.
Twisted is very elegant, but somehow elegant things get eradicated in the Python world. Time and again.