The easiest fix seems to be the ideas that center around only getting one chance at a top 3 pick. Let the worst team have high odds of getting a top 3 pick but if you are in the bottom 3 two years in a row, tough luck, you get number 4 at best. In bottom 3 three years in a row, no better than 5th pick, and so on. And this continues until you are out of the bottom 3. That way teams would know that they need to play hard to get out of the bottom 3 or risk getting worse and worse picks.
If you just get lucky like Cle, that is different. They didn't tank this year, they tried to make the playoffs. No need to punish them just for being lucky.
Some teams still might tank for a year and there is nothing you can do about that. That is just something you would have to live with and I would be OK with that. But no team would ever be able to pull a multi-year tank like Philly has been doing.
You could expand this to say that if you are in the bottom 3 for more than say 5 years, the owner has to sell the team or the GM and coach are automatically fired. I know this is to harsh to be realistic but that would be the rules for a CEO or someone like that.