I've thought that there's a possible solution here which solves both major problems with the draft at the same time, while also making for a night of even better TV and adding additional intrigue to the offseason. Use the results from the season (probably with something like the current lottery, since it makes only a small difference here but adds nice television) to award teams a pool of rookie cap space corresponding to the rookie payscale slot that they would currently give in their first-round guaranteed contract.
Once that's done, it's time for the draft. Coming into the night of the draft, we don't actually know the draft order, only the pool amounts. On draft night, we start with the #1 overall pick, which is auctioned off to the highest bidder using the money in their pool. Teams must bid, at a minimum, the slot amount, but in addition, any team under the cap may use existing cap space to augment their bonus pool, up to the amount of a minimum service time max contract on top of their existing slot amount. Teams with multiple first-round picks basically treat them as separate bidders, and can separately add cap space to each (as long as it's not double-used). Highest bid wins and selects a player, then the remaining teams bid for the #2 pick, etc.
The reason we're using cap space is that once a player is selected, their rookie contract starts at the amount that was bid to acquire them. Bidding $15M in cap space to get the #4 pick means that you're giving that player a $15M contract from the start of their career. Most teams are unlikely to do this, which means in practice, there is a much stronger incentive to create cap space than to tank and lose games, because the slot really only matters in two cases: for teams that are stuck over the cap, it's all they get (but it's pretty hard to be both well over the cap and awful for very long) and in the very rare case that an entry-level player is actually worth a max contract...
...which is the other benefit here. Right now, no rookie from this past draft would immediately be worth a max contract. They might be in a few years, come time to sign an extension, but not now. LeBron perhaps would have been when he was drafted, but even, say, Anthony Davis would not have been.
However, Davis with a couple of extra years in college actually might have been. Right now, the rookie scale is flat enough that if you're going to be anywhere in the lottery, you just get to the NBA and rush towards that first max deal. But if entry-level players are being paid closer to market prices, except that their first four years worth of salary all depend upon how they're seen at the moment they enter the league, the top tier of rookies now has a strong incentive to develop in college rather than during their first 2-3 years in the NBA. So the college and NBA games both might get better as a result.
Still, it's unlikely that there will be more than 1-2 players per decade who merit more than a max contract (max plus a large slot) as a rookie, which means that you can be just as competitive in the draft auction by signing 1-year deals and winning games as you can be by actually sucking. And since sucking also hurts revenue, it's hard for me to imagine teams opting for that path.
I suppose one extra effect is that small-market teams who are having trouble using their cap space to sign a top free agent have even more of a possible strategy to use it on rookies, who are compelled to accept their best offer. This shouldn't be such a bad thing for competitive balance either.
And who wouldn't want to watch a draft auction?