@GreenSock, @PointC - thanks for the insight guys! I reckon I've been "trained" by previous versions of GSAP that .set() calls at the start of a timeline should fire immediately, but programmatically, it does seem more consistent after the change. My new understanding - any operations involving rendering are executed at the next tick, but .pause() sets the internal timeline flag immediately. So in the scenario of timeline.set().pause(), by the time the next tick has rolled around, the timeline is already paused and nothing renders (this all assuming that immediateRender is not true). It'll take a few minors adjustments in my code, but nothing too bad. Appreciate the help, cheers!