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