- time for things to settle and eventual mistakes to be fixed (3.0, 3.1, 3.2) while the 2.x line lives
- lockstep 2.x versions that include stdlib and language (vai __future__) feature backports from 3.x line (2.6, 2.7) to get maximum portability and minimum tech debt for new code written on 2.x line.
- finally, impetus to transition with non-backported new language and stdlib features (3.4, maybe 3.3 already)
and of course, letting time for lib authors to port their existing code.
Never has it been the plan for people to instantly port existing, non-lib code to python 3.0 (or even 3.1 or 3.2), and never has it been so that python 3.x instantly obsoletes the 2.x line, and in fact, quite the opposite.
So people that like the new-n-shiny and blindly jump onto the latest version bandwagon were definitely in for the roughest ride, and gave Python 3 the bad rep we know.
I honestly prefer the way this transition has been handled rather than the "hey everything is compatible except it's not and things are subtly breaking all around" attitude from Ruby which I have to deal with now.
† the 10 year figure was somewhere in a ML that I can't seem to get a hold on back when I was working with Python and having to plan for this transition.
[PEP 3000]: https://www.python.org/dev/peps/pep-3000/