They need to start banning Federations first up. If you ban them then the income stream dries up. Money drives this whole thing so the only way to force chance is to hit them financially.
Every athlete competing in any IAAF sanctioned competition should be registered and answerable to their national association. They should have to sign an agreement that all and any prize money must be paid back in the event of a drugs ban in the 4 years following the competition. The associations registering the athlete should be liable for this debt in the event that the athlete refuses to pay. The associations are in charge of the out of competition testing and should be held to account for doing it properly.
F*cking smash them financially.
It would be great if companies like Nike would put disclaimers in the contracts with athletes that if they test positive during the duration of the contract then all the money has to be paid back.
Attack the financial advantages of doping and you might make a difference. Catching athletes is incredibly difficult and expensive. Taking away the money should be easier.