If an company can do what they need to cheaper by hiring someone from overseas - especially a disposable someone who they can use and dispose of - they're going to do exactly that. US law has forbidden indentured servitude for a long time, but the H1B visa represents a legal version of exactly that. Here, try this:
Get rid of work visas outright. If a company can't find talent here in the US, they should feel free to sponsor a foreign national for citizenship - and take away the ability to summarily deport the foreign worker when they're through with them. Instead of a revolving door of H1B visa holders, we'll end up with more US citizens - workers who will be incentivized to demand the same pay and working conditions as their peers in the workplace.
I know of a certain international business machine firm that uses (abuses) huge numbers of H1B visa holders precisely because they can get away with it. It's great for their bottom line; they get employees that are willing to accept vastly substandard wages and work unpaid overtime in sweatshop-style conditions because they know that should they even think of standing up to it they'll be shipped back to wherever they came from. Now, if these guys were on the path to citizenship, I'm sure the manufacturer in question could still discharge them (after all, they're only contractors, not employees) - but they'll have a harder time making the case that there's no local talent to be had, because there will be all of these qualified personnel right here working towards citizenship.
Oh, the firm I'm not-so-subtly talking about? They don't pay US citizens very well, either. What should have been at least a $70,000/year salary gig for me ended up being a $24.04/hour job - contractors will be paid better, but they will end up providing unpaid overtime to make up for it (I know; I went down that path with them as well).
In the end, I'm not saying we should prevent immigrants from finding work here in the US. I'm saying we should prevent visitors from allowing large enterprises to degrade compensation and work conditions for employees in the US.
You're still tying citizenship sponsorship to employment. That's still the problem.
Currently, what happens is that the path to citizenship is still 1-2 years at the fastest and during that time you're tied to the sponsoring company. There is still time to exploit.
Make the process at most 1-2 months and the work only starts after the sponsorship process ends.
US gets high skill workers for jobs that are not found locally. The worker can ditch the company the first week if the work conditions are terrible. There is full incentive to pay a competitive salary to the worker rather than dangle sponsorship.
It's a win for the economy and the American worker but not so good for corporations looking to exploit.
The main problem is that the sponsoring company gets more than what worker visas are supposed to provide. Ideally, they should just get a worker to do the work not found locally. They should pay a competitive salary and a small premium as fees for getting foreign labor. But, by tying sponsorship to the company, the worker is trapped and the company gets to exploit the worker.