If you don't have checked bags then you can use transit immigration rather than the full blown landing and returning airside. If you do check in, then you will have to collect bags and check in for your following flight given BA's customer hostile refusal to through check. 3 hours should be fine for this, but maybe allow some additional A380 time... My ranking of carriers in terms of quality/performance etc is
1 Airlink
2 Safair
3 Fastjet
4 South African
11:30 Airlink looks like a good option, or the 10:00 if you feel a bit braver.
Cemair is also an option. I've not flown them but family members who travel weekly around SA aren't fans.