H1B is essentially indentured servitude. I can vouch for the wage differences for H1B personally because I've lived it. You have virtually no mobility as an H1B holder and the employer holds all the cards. The costs for an H1 transfer run between $1200 and $2000 and the employer promises the INS/USCIS that if they terminate you and you cannot find a new position within 10 days, they pay for your "return to home country" costs. Essentially, they post a bond for your return. And employers who bring you in as an H1B will often hold the costs of moving and filing costs against your starting salary. I was 15-20K below market when I came in under my H1B.
So, yes, an H1B will put up with crappy job conditions because they typically have no choice. Companies are required to prove they looked for an American to fill the position (an H1 requirement) but the salary range and experience requirements they list are often so out of whack that no qualified person would apply due to the far-below-market wage requirement. So meeting the dosmetic requirement is a farce because the employer really wants the cheap H1B.
Don't raise the H1B visa limit. It really is a means of getting cheap labor.