When you have `await task` line you probably know what task it is, you can debug and fix it.
But hanging on `loop.close()` because some unknown task hangs looks very confusing.
The approach gives no clue for what task is malformed.
Users will blame that `loop.close()` hangs forever without any reason or additional information.
It may wait forever in case of malformed generator
implementation.
Yes, but every "await task" can wait forever in case of malformed
task implementation. We can't do anything in case user will write:
while True:
pass
--