As for #2, the main issue now is more of supply and demand. The US only gives out 140,000 employment based green cards a year (plus some from other unused categories), which also includes the worker's families. There are far more ways to get an employment based green card than through H1B. The problems we're hearing about are less to do with the process (which _is_ byzantine) and more to do with that there are not enough green cards to go around.
And just as an aside, there's no labor certification for an H1B, e.g. a company isn't saying they need that worker so so much. A company just wins the lottery and agrees to pay at least what the DoL says is the prevailing wage for the occupation. If they later want to get a green card for that employee, they have to redo the prevailing wage determination AND make an attempt to hire an citizen/GC before they can get the GC (or the employee has to prove they have exceptional skills that gains them international recognition, among other things which includes "being paid way more than your peers")