Maybe a better idea is to make all scholarship offers binding, or at least tell the athlete if it is or is not binding, after a certain date, say 1 Sep of an athlete's senior year; with all offers outstanding automatically becoming binding on the school on say 1 December. Schools can still extend non-binding offers before that, or explicitly state an offer is not, but must decide who they want far enough in advance so a kid has a chance to look elsewhere if a school changes their mind.
It would probably mean a lot of 3 stars wouldn't get big time offers until later but at least they'd have a clearer idea of who is really interested. You might also see athletes going to a broader array of schools since schools could not afford to extend offers to every 4 and 5 star but need to focus on ones they really think they want to fill a need; if a school does make a bunch of offers they may wind up with a 10 person class. To avoid over signing and culling, the NCAA could automatically review a programs numbers for any school that over signs by more than 3.