I think just removing the requirement that a H1B visa is tied to a specific job would go a long way towards solving the issue and would, in effect, be self-regulating. If an employee is underpaid or mistreated he can vote with his feet -- unless of course the company can keep him on a leash via H1B visa. Remove the leash and situation self-corrects. Suddenly, it's no longer cheaper to hire H1B workers.
I also like the idea of a H1B tariff, or making the cost of the visa substantial, say 10% of the prevailing salary. That would still allow companies to hire foreign workers if there is truly a shortage (you know, the problem that H1B program is supposed to address), but would make it unprofitable to abuse the system.