Python 3 is IMO a much cleaner and friendlier language to work with than 2. Especially if you're doing anything to do with Unicode, Python 2 can be a real pain. Also, all real development is now taking place on the 3.x series - if you want to keep up, you'd better learn it.
This is a good overview: https://wiki.python.org/moin/Python2orPython3
When I first started learning to program, I thought of every problem in terms of C++ (the first language I learned).
It wasn't until I learned other languages, and really other paradigms (functional vs imperative vs constraint etc), when I really saw that a problem can be framed in so many different ways, entirely based on the language, and some of them are more elegant, more efficient, simpler, or offer some other benefit.
I think if you learn python 2, and really get to grips with it's pitfalls and other nuances, and then learn python 3, you'll get a better understanding into the changes between the two languages, and I think that will give you a better overall understanding. And IMHO, more knowledge is always better.
And even if you have legacy code, I'd learn 3 then learn the difference(s) required to use the legacy code.
Yes, probably.
it's the curse of open source software: as long as the source is out there, people with legacy software will continue updating it. Perl 6 was long in the making, never made any real inroads because all of its audience was already readily invested in perl 5.
it only really works with commercial tools, because people will whine much but eventually bend over and buy Microsoft's or Oracle's latest bloated money grabber. Because there's no option, right?