If MLB and the MLBPA are serious about getting rid of PEDs, they need to make the penalties financial. you're not discouraging players from cheating their way to six figure contracts by penalizing them with a tainted legacy and the ability to keep every contractual dollar.
One posssibility might be to have every player who tyests positive (with X amount of re-tests to make sure it is not a false positive) is to make them play out the remainder of the current contract for the leaque minimum, or to deny arbitration/raises for players in their first 6 seasons, and make them play all the way to free agency for the league minimum.
I bet you would see a massive drop in PED usage at that point. At least in the Majors. Minor leaguers still have nothing to lose.
The owners would likely be all for it, but the MLBPA would balk. And they would be wrong to do so, because it gives the appearance that they promote PED usage in order to secure more money, which is exactly the opposite message MLB needs to be sending...