I would advocate collecting your luggage and rechecking. Two out of the three times my luggage did not arrive into LHR with me was in JNB when the luggage was interlinked onto the international booking from a domestic. On one occasion, all transfer bags were left behind. It seems they were put aside and forgotten about, only realised when the load sheet did not add up which by then, was too late. Remembering the 'This is Africa' slogan, don't assume things will happen because someone tells you it will.
Collecting luggage from a domestic connection in JNB is no hardship. You can walk easily between the two areas without going outside. Based on timings, remember you have no protection if the inbound is late. If you are too early, you may have to wait for the BA international desks to open at T-180 (and a bit). We have in the past travelled on the first flight into JNB, left our luggage at the reasonably priced left luggage facility and spent the day in Sandton which is way more pleasant than hanging around in the airport or lounge.