Generator based coroutines were long deprecated and removed and asyncio doesn't not supports it. There is some left over code for supporting it which can be removed now.
The first thing is this behavior of asyncio.iscoroutine which makes no sense now. I propose to remove this first.
importasynciodefgen(): yield1assertnotasyncio.iscoroutine(gen()) # failsLinked PRs
GH-102748: remove legacy support for generator based coroutines from asyncio.iscoroutine #102749