Most of H1B could be fixed if we could get rid of Wipro/etc. staffing agency abuse (almost entirely of people from India, but there are lots of Indian H1B who work for other companies and are fine); the process seems relatively non-abused by actual end-user tech employers, with the biggest problems for smaller companies being the "can't work here because if company fails you lose status (in 30 days now, thankfully, not immediately)" and "hassle of the process".
I'm not sure how legally to ban the Wipro style use of H1B while preserving the rest. I'd also always prefer fees vs. delays; there are jobs for which $200k/yr fee paid to US Treasury would still be worth it for ~instant processing, and it's inefficient/bad for everyone to not have that as an option.