You've got the problem right, but I disagree with the solution. We need to dilute professors.
Instead of being a postdoc for ten years and then either leaving broken and broke or scoring the big one (and getting to slave away for another twenty years as junior faculty...) make post doc a two year post-post-graduate thing. After that you become a professor. "Professor" stops meaning "old dude who writes grants" and starts meaning "person who does research and teaches." Grants get broken up into smaller pieces, so instead of one professor being responsible for keeping funding that keeps ten, fifteen or twenty students, post docs and techs fed, each professor gets personal operating funds. Professors have one or two students (or none) and do active research themselves.
The current position of "professor" is really a pretty crappy one that I don't think many who actually like doing science really want (I don't). What they DO want is the ability to apply for funding to support their research, get paid a reasonable wage, and maybe have students.