Give them full legal residency and give them the option to stay instead of sending them home after 6 years and perpetuating the "shortage".
I've been saying that for years! Right now if they lose their jobs they have 2 weeks to find another one or they have to leave. Of course they're willing to accept lower pay and all kinds of abuse from their employers. At the least, make the green card automatic after one year. Then it'll be obvious if there is really a skilled worker shortage or if employers are using H1Bs to undercut the job market. Employers don't have to pay competitive salaries to H1Bs (as required by law) unless the workers are free to accept a better offer.