I think it would be fine to wait just one release, until 3.12. Makes no substantial maintenance difference and maybe easier for users with more advanced notice, especially for module removal.

I also wonder if maybe we should scale delay between dep -> removal based on maintenance burden estimate, rather than 2 versions for all. Module removal certainly takes more effort to adjust in code vs simple function name change with 1:1 replacement.

--Kyle R. Stanley, Python Core Developer (what is a core dev?)
Pronouns: they/them (why is my pronoun here?)