That is exactly how it is supposed to animate, but I was trying to keep the end Tween in one line.
The first tween has the luxury of being on one line:
tl.staggerFrom(".circle", 1, {x:300,autoAlpha:0}, 0.2);
Whereas the end tween require 2 lines:
tl.staggerFrom(".circle", 0.5, {y:"-30px", immediateRender:false}, 0.2, "end");
tl.staggerTo(".circle", 0.5, {autoAlpha:0.5}, 0.2, "end");
If this is the correct way of doing it then that's fine, I just thought I might be missing a trick. Thanks!