Right; I don't want to Time.timeScale = 0 because it'll affect all my background stuff.
What I want to do is pause the tweens themselves, while continuing all the rest of the game logic (background animations, music, particle effects, etc.).
Essentially, the only things that I do want to pause are NGUI's UITweener events (such as TweenPosition, TweenScale, etc.), not the other way around.
What about grabbing UITweener.tweenFactor, so I know how far it's gone so far in its tween, call UITweener.Sample() to update its localPosition, and then grab that localPosition value? That should give me the interpolated values and time spent on the tween, and then I could disable the tweener (you CAN disable them, right?) while the app is "paused". I would then just create a new tween from its current position and put in the remaining time so it continues on its path at the same speed as before the pause event happened.