A question I have is how the duck can a language like C# introduce TONS of changes from 1.0 to 5.0, including major syntactic, semantic and library features, and still be widely adopted, whereas Python has to have a "five year migration" for what are essentially some minor language changes.
They were not minor changes, though they might appear to be so from the outside looking in. The unicode changes alone are significant enough to require a significant refactoring of existing code - due to the monkeying around that was required to properly deal with Unicode in 2.x.