Copy nine behavioral asyncio modules and the independent ftplib unused-assignment cleanup from CPython d220409a13b77de7a6c30abe16ea90db01528edc. Migrate their whole canonical suites with existing RustPython guards preserved.
Assisted-by: OpenAI Codex:model version unavailable
* asyncio: honor pending-task, unawaited, and get_referrers
Report Task destructor as 'Task was destroyed but it is pending!'.
Warn when a never-started coroutine is collected. Preserve signal()
errno. Attribute generator-owned frame locals to the owner in
gc.get_referrers. Remove the expectedFailure markers that now pass.
Assisted-by: Grok:grok-4.6
* tests: drop expectedFailure after unawaited warning
The never-started coroutine RuntimeWarning unblocks
test_bpo_45813_1 and the AsyncMock assertNeverAwaited cases.
Assisted-by: Grok:grok-4.6