Upheaval is a DPS gain at all times. Not sure how you are figuring it isnt. Its a powerful attack that should be used as often as humanly possible. Period.

Onslaught is only a tiny, tiny dps loss. That is easily made up for by not delaying a GCD. TLDR: if walking back to a monster makes you delay a GCD, you should have used onslaught to get back faster. Its really that straightforward. It's a perfectly designed gap closer. If you dont need to gap close, you dont use it. If you find yourself with a gap to close, close it and you will be better off for it.