How to handle async context managers in Python 3.12+?