> await result2;
> await result3;
Not really, you only have *1* request in flight.
And you're waiting for them sequentially.
You need asyncio.gather ( https://docs.python.org/3/library/asyncio-task.html#asyncio.... ) if you want to run tasks concurrently.
results = await asyncio.gather(result1, result2, result3)
From the docs: https://docs.python.org/3/library/asyncio-task.html
> Note that simply calling a coroutine will not schedule it to be executed:
I think on C# you can await threads which is similar to a join() with a return value.