You're preaching to the choir here. I am studying pure mathematics and minoring in philosophy and astrophysics, with the eventual goal of becoming a teacher. I dream of teaching kids critical thinking and deep problem solving skills, not rote memorization.
In the intro to mathematics education course, which I took as part of my program, we focused exclusively on teaching mathematics in the Socratic style. It was fantastic teaching my fellow classmates and a ton of fun to boot.
Unfortunately, I have to add this again, in my experience volunteering as a tutor (2 hours a week for the past 4 years) for high school students, I've noticed them really struggle with critical thinking type problems. Show them any mathematical problem where the structure of the question is different from what they've learned in class and they can't do it.
They don't really understand what they're doing, they only know how to repeat the procedure they were taught with cookie-cutter problems.