# The solution is to create an async generator:
sum([await x for y in z])  # Works, because it's a list
sum(await x for y in z)  # Doesn't work, because it's an async iterable