There was still lots of python2 package installs [1] even after 2.x officially ended.
[0] https://en.wikipedia.org/wiki/History_of_Python [1] https://dev.to/hugovk/python-version-share-over-time-6-1jb8
Unfortunately "no longer receives security updates" isn't strong enough. Until we can't ship a new feature without Python 3, we'll be on 2 for a long time.
The other nightmare is if a dependency isn't actively maintained you have also port your DEPENDENCIES over. Straight waste of time in many many cases. And your PM is asking (fairly) what new cool feature do we get? And you say - the program will run more slowly after all this stupid work. And boy - did things run more slowly especially in the early version - you upgraded and then got crap as a result so PM is asking why all this work made things WORSE for users.
On the other hand getting everybody from Fortran 90 to Fortran 2008 will probably take at least one more decade ;)
For the vast majority of users it was a very easy transition, due to the substantial work done by the Delphi team to make it so. For a lot of programs, a mere recompilation was required. We had a 300kLOC program + dependencies at that time, and one of us spent a 2-3 days on migrating, fixing small issues and testing.