the h1b is a dangerous game. it's essentially a do whatever i say, and i "may" sponsor your green card "eventually", with an emphasize on the may. not everyone uses it that way, and i would would be leaning out of the window saying most do, but it's definitely enough to be a common issue.
i was brought into a university with an h1b under the premise that i could work on my own startup. what didn't tell me was that that what they meant was that i should work for them for 5 years before they would consider sponsoring a green card application, and that they expected me to work unpaid overtime whenever they asked me to.
i've heard from a friend running a consulting company in the area, that a lot of companies bring in workers with h1b's and then don't even have the decency to sponsor a green card after keeping them for 6 years.
to my remembrance there was a house voting sometime last september about an immigration reform. one side of the table was asking for better accessibility to visa's for specialized workers(including cali afair), and the other was asking for more audits.
sadly i can't tell you how much good came out of it, maybe someone else can elaborate on that.
edit: there is a reference at the end of the ops post, but it's not really prominent. eb-3 wait times can be years, which is why it's not really a reasonable choice, but eb-2 is different