When you're implementing this API on top of tkinter, you'll probably
find that you'll have to use tkinter's way of sleeping anyways, so the
implementation of waiting in BaseEventLoop using a selector is not
useful for this scenario.
There are probably some possible refactorings in the asyncio package
to help you reuse a little more code, but all in all I still think it
would be very useful to have an asyncio loop integrated with Tkinter.
(Of course Tkinter does support network I/O, so it would be possible
to integrate with that, too. Or some hybrid where you somehow figure
out how to wait using a Selector *or* tkinter events in the same
loop.)