The answer is dual SIM my friend, use the Vodacom sim so you can have good call quality, then get another SIM for whoever sells data the cheapest.
I am doing that on a pay as you go fashion now, works out cheaper than paying a contract and I get the best of both worlds.
Expensive, but you generally get what you pay for. Signal is good and customer service is good. Would like to see their data prices at least match Telkom though.