Right, so here's the problem in a nutshell: You can produce as many STEM graduates as you want, but those STEM jobs are going to continue to be unfilled because the job offers don't come with a a market-clearing salary.
STEM graduates (both undergrad and grad) wake up the day after graduation and start looking for a job. What do they find? Well, if they are smart (and, they probably are, because they just graduated with a STEM degree) and have one or two other skills outside the STEM degree, they find that there are people who are willing to pay them an incredible amount of money to do "not-science" and a middling amount of money to do "is-science." There are actually plenty of US-born STEM graduates created each year who leave their field to do something more lucrative.
Take a look as these statistics from the American Physical Society: http://www.aps.org/careers/statistics/index.cfm
Almost a third of people graduating with a Bachelor's in Physics work in some field that is unrelated to science, technology, math or engineering! In other words, by just paying market-clearing salaries, we could increase the number of physics graduates entering the workforce each year by a whopping 50%! That could happen tomorrow, not twenty years from now when today's kindergarteners finally get through the pipeline.
Pushing more students into a STEM track won't reduce the number of unfilled STEM positions: It will reduce the average salary of the STEM graduates who leave for other fields. With enough pushing, you might, maybe, one day push the salary low enough that graduates remain in STEM. Or, you could just increase the salary of those unfilled STEM positions.