And as others said, add a cost factor to train an citizen for every H-1B issued. Actually, slap a 350% tax on all the salaries paid to H-1Bs except for the first 15 people (or, I don't know, 3% of the overall staff, whichever is higher) and make sure it's hard to game with shell companies, body shops and subsidiaries.
Precisely 0% chance it'll happen in the current administration, and it's anyone guess if there will be administrations after this one, but a few hours of additional thinking around this solution (this is the first 3 minutes roughly) could make it work way better. Remove limits, make it really expensive, give some rights to the people who come on it, use the money to address real shortages, and watch companies stop abusing it.
P.S. European here, with 0 interest in coming to work in the US.
your logic erases nuance of the US labor market and infinity of specializations and niches, on top or large regional differences in labor market.
let's just say that nurses will never be paid on par with software engineers just because it is different specialty, and it is stupid to force nurses to compete with IT for visas
https://tiffany.house.gov/media/press-releases/tiffany-intro...
https://www.cotton.senate.gov/news/press-releases/cotton-int...
Probably something similar to nursing programs