If in coach, I would choose two flights --- but would strongly advise flying trans-Atlantic from NYC on a day-flight, then sleep overnight near the connection/stopover airport, and then continue the next day (ideally on another day flight) to JNB. Eight hours in a real bed on the ground can transform a horrific itinerary into something extremely pleasant. The best TATL day flights from NYC are to London (on UA, BA, VS, or DL etc.), and there are lots of direct and/or connecting flights from there to JNB.
If in business class, I might instead choose either the 15+ hour nonstop, or the Istanbul route (to maximize sleep on both flights). If I could, I would avoid the flight with the stop in Dakar.