This is one of these perfect storm events. To top things off you had a (fairly poor) OTA Opodo involved. It is standard industry practice that until ca 24 hours before travel only the travel agent can touch a ticket. They 'own' it so to speak. Calling SAA and LH in various places is usually ineffective and can muddy the booking if different people fiddle around with a reservation. I understand your frustration, but a small part of this is self-imposed. Had you gone to the airport as usual, or waited for check-in at T-24, the cancellation would have been 'live' and you would more than likely have been re-booked on one of many Europe-JNB services that night. But who knows now.
The reason EC261 won't apply is not so much that you arrived a day early, but that the reason for the cancellation was a strike at the operating carrier. You can try for a service remedy at LH, but my guess is that they will give you a version of the above and insist that, had you carried on as planned, you'd have made it to JNB the same day.
Finally, the internet has a way of amplifying the extremes. Your flight with LH was fine, just not the customer service element. Resorting to "I'll never fly them again..." leaves you with painfully few travel options after a few things go wrong. Just have a look over on the BA board.