Two other minor comments:
You don't even need to use a real target on that final (blank) tween, like tl.to({}, 30 - tl.duration(), {}) or even tl.set({}, {}, 30 - duration()).
If your goal is to stretch the timeline so that it fills 30 seconds exactly (rather than putting an empty filler at the end), you can set its duration after populating it with all your tweens, like tl.duration(30) which will set the timeScale accordingly.
Happy tweening!