LAX-FRA-CPT is a decent way to go, but you will most likely have a very long layover in FRA. JNB give you more options on LH too.
You should also consider LAX-SIN-CPT on SQ. You can take the LAX-SIN nonstop and have the whole day in SIN if that is to your liking, or take SQ11 LAX-NRT-SIN and connect (in 45 minutes!) to SQ478 SIN-JNB-CPT. SQ only flies to CPT thrice weekly. Once nonstop and the other two times with a tag from JNB.
Until SA comes into *A, that pitches out LAX-IAD-JNB, which might have been the easiest route.
I would go where you can get the seats. Getting 3 C class seats is very difficult but can probably be done. If you are willing to split up, or pay for one ticket then you would have better chances.