Actually, I know quite a bit about this having flown to JNB from the west coast on CX 4 times (1 F, 2 J, 1Y) and BA to JNB (1 J) and BA to CPT (1F, 1J, 1Y).
CX is hands down better in J and F in terms of the flights. Its not even a contest. Its a long way in Y either direction.
It is technically shorter to fly via Europe, but it doesn't really feel like it because of the layover - especially on the outbound because its all day. Its a full day in HKG as well.
I have almost always stopped in HKG and LON both ways to spend the night and get cleaned up. Two night flights in a row is not fun.
For a while BA moved their flights to Africa from LHR to LGW so you usually had to change airports. I think think that they have moved them back now though. I actually prefer LGW because it is smaller, but I hated to change airports.