How about, instead of a cap, simply do a 100% federal tax on foreign students’ tuition and fees that the schools are “constructively” charged.
That will place a major league cap on the number of foreign students and help with balancing the federal budget.
The schools would pay the tax.
Cap it and tax it.