You definitely don't need 2 1/2 or 3 hours before checking in to JNB. For CPT-FRA flights, I always checked in 1-1/2 hours before (because traffic can be very dense to the airport, but you never know when, so most of the time you end up at the airport early). CPT-JNB should be even less of a problem. Seem to remember a sign for 20 minutes (?) check-in deadline but this might be for handluggage only.
JNB check in will be annoying for you as you will not be flying SAA, which have a premium check-in area. Keep your luggage tightly! Maybe you can ask for a HON escort?
Arabella Sheraton is nice, but the Radisson SAS is even nicer (at least in terms of location), but further away.
I do envy you! Haven't been to CPT for 9 months...
SmilingBoy.