You posted code, a real error, and what you expected. We can work with this.
Your problem, restated
Your coroutine never runs because you call it without awaiting it: do_work()
returns a coroutine object, it doesn't execute.
The fix
import asyncio
async def main():
await do_work() # await, don't just call
asyncio.run(main())
Run it. Then come back and tell me why it works now, not that it works. I'll grade you.