I think there is a compromise solution available.
3 round draft
To be selected in the first round you must have finished your sophomore year if American, or be 20 by end of the season if international.
To be selected in the second round, you must have finished your freshman year if American, or turn 19 by end of the season if international (the current rule for all draftees). Obviously if you're eligible for the first round you're eligible for the second.
To be selected in the third round, you must have finished high school if Anerican, or turn 18 by the end of the season if international (this was the rule before the one-and-done era.)
All draft picks have four year slotting deals, not just the first round. The first round decreases pick by pick more slowly than now, and the values keep decreasing through pick 90. (Right now the final first round picks have a slot of under $1 million. I'd raise that to around $1.5 million, and probably up to pick 45 the slot is over $1 million). First round picks get three years guaranteed, second round picks get two years guaranteed, third round picks get one year guaranteed.
Draftees no longer need to count against the 15-man roster. Teams can keep first rounders in the D league one year, second rounders 2 years, and third rounders up to three years. The guaranteed rookie salary does not start counting until the first year a draftee is brought to the NBA (although the value of the contract applies for the first year the player is brought up, not drafted). The D league salary should be raised a bit -- $50k for a player's first season there, $75k for his second, $100k for his third.
A team that wants to remove the draft pick's cap hold must send the player down for the season. A team that keeps the hold on the book's can bring the player up later in the year, but the player must be paid his full salary if brought up, not a pro-rated amount. If he is never brought up during the season, despite his cap hold being maintained by the team, then it's treated as if the team kept him in the D league the entire year (as described above).
Owners benefit from this solution because they can develop players more before paying them large amounts of money. Players benefit because 1st rounders get more money, more players get guaranteed deals (and deals guaranteed longer), and players who want to turn pro earlier have that option. Furthermore, roster spots at the end of the 15-man roster, which were once used just for rookies not ready for game action can now be used on veteran players making the minimum, who otherwise would have been out of a job.