I am guessing this is a near certainty. You could cap the amount a team could spend with a hard limit. You could increase the penalties to make it longer (3+ years) and harder (can't sign anyone above $10K, not $300K).
A draft solves the problem better than most solutions by making sure the top prospects are spread among 30 teams. A 4-round draft (there are 4 rounds of slots) would distribute the top 120 prospects and then you could have a rule saying a young player who becomes eligible after the draft cannot be selected until the next draft (the Cuban problem of late). The draft has other issues of course. I think they need to make each player declare for the draft and then have MLB do background checks and physicals for everyone to level the playing field. If players have to declare it will make it harder for buscones to hide prospects and steer them to select teams.
They probably need to raise the slot dollar amounts if there is a draft that is separate from the real draft. They have held the international pool a little lower than the draft pool in some arbitrary ways.