Disclaimer: I am an H1B visa holder (though likely on my way out)
You hit the nail on the head. This is why rather than more H1Bs we need a better H1B.
IMO doing away with the lottery and granting the visa to the <N> highest paid applications would go a long way to make things better.
It would kill H1B sweatshops, motivate employers to look for American candidates a little harder and make it easier for companies willing to pay H1B workers well to fill the positions they cannot fill locally.
It's also a proposal that - I feel - could gain bipartisan support in congress. Unfortunately, I don't hear many people speaking out in support of it.