I'd say follow the baseball model.
Expand the NBA draft to 5 rounds. To be eligible for the draft you must be 18 OR completed your college "tour of duty".
If you are drafted, you can go sign with your team or go play college ball. If you play college ball, you are not eligible for the draft for three years.
Expand NBA rosters to 25 players. 15 "NBA" players and 10 G-League players.
This way everyone can be drafted, NBA teams can put players in the G-League and pay them, and if a kid goes to college, then college teams have some sort of stability and the kids can be better coached.