I had a suggestion for simple reforms to Canada's Temporary Foreign Worker program that was being similarly abused, except it wasn't limited to tech workers. Specifically the TFW program was set to for companies that couldn't find Canadian talent to fill roles. It was meant to be used for things like say a high end Indian restaurant needed to bring in a chef from India with 30+ years of experience, but instead was used to replace teenage cashiers at McDonalds franchises.
My suggestion was very simple: If you cannot find a worker for a particular job, you apply to the TFW program for a permit to hire a foreign worker to fill the slot. The government does market studies and knows what an average wage for that position is and to fill it with a TFW, the company will pay 150% of the average wage for that position to get that worker into Canada and employed. The company pays the ministry the worker's 150% wage and then the worker receives a cheque from the government at the average wage for that position as per the market study. The excess monies are used to pay for operation of the TFW program and also to set aside grants to train Canadians to fill these worker deficiencies.
Another reason the pay goes through the TFW office was that there were several cases of the workers being underpaid once they arrived here, or in one particularly egregious instance, a McD's franchisee was also acting as the landlord for his TFWs in a house he owned and would "helpfully" pre-deduct rent and utilities from their paycheques.
I'd be willing to bet that if the TFW and H1-B programs enacted this simple reform, the demand for foreign workers would plummet like a stone and it would still leave the door open for those businesses that actually cannot find someone in-country for a particular job.