Why is this so hard?
A little basic research goes a long way.
CPT airport
website.
BA have two daily non-stops CPT-LHR, and VS has one.
You can also take BA, VS and SA non-stop from JNB-LHR.
All offer lie-flat seats and very good in-flight service.
If you want to connect in FRA, you can take LH.
Likewise for ZRH, take LX.
You can also go via the Gulf, but that significantly adds to the journey time.