asyncio.gather immediatly propagates exceptions, which is nice for debugging, and what we wanted in the first place.