Documentation
asyncio will only keep weak references to alive tasks (in _all_tasks). If a user does not keep a reference to a task and the task is not currently executing or sleeping, the user may get "Task was destroyed but it is pending!".
see also #88831
shield has the same issue and the documentation currently recommends the incorrect usage