What features of Python 3 are you referring to? The only thing that I see different in the code is the character encoding: byte arrays vs. strings. The other code would run in Python 2 just fine... Just slower.
I agree that Python 3 runs better. The only proof I can give is the massively reduced startup time... Along with the logic that Python 3 was built to improve Python 3.
I prefer to allow users to upgrade and everything just work, without them needing to change there setup. That's not always possible though, so if dual support becomes too much, we can just drop Python 2 support.
I wouldn't want to maintain Python 2 code in a separate branch, as other dev tasks have higher priority and maintaining that would be a serious drain. If the code can't be universal, we should just drop the support.