How to implement graceful shutdown in Python asyncio services?