Kirby, have you ever looked at mathpiper? (http://www.mathpiper.org/)  I know you have a strong interest in fusing math explorations with programming, so it seems like something that would be right up your alley -- sort of an accessible Mathematica intended for education.  The docs section also contains a couple e-textbooks that weave in a lot of mathematics examples into the programming instruction (http://www.mathpiper.org/documentation-1)

Certainly one of the more attractive aspects of Python is that it is both relatively-easy-to-learn and relatively-useful-in-the-real-world.  But there's definitely a school of thought that *no* language used in industry is optimal for education, that the aims of industry and education are too incompatible for one language to rule for both purposes.  It's definitely an interesting debate.  I feel fortunate that I work with young enough kids that I feel little pressure to teach them something with immediate marketable value.  This gives me the freedom to experiment with many different languages; I've found that I rather like teaching ones expressly designed for education, but Python remains one of my favorite educational options of the popular, mainstream languages.

For me, the thing that has made me lose some enthusiasm for Python was not even mentioned in the article.  For me, the biggest downside is that the language, with its Global Interpreter Lock, lacks a clean solution to teaching concurrency.  IMHO, concurrency has become a vital issue, and requires a somewhat different way of thinking about problems.  To create the next generation of exceptional programmers, I believe we need to introduce models of concurrent programming much earlier in the curriculum.  Almost every recent programming language places a huge emphasis on concurrency (such as Clojure, Scala, Go, F#, Julia, and many others) but none of those are particularly welcoming to beginner programmers.  So I'd love to see more educational languages that feature concurrency.