Hey Jack - I don't know if this will help, but while working through an attempt at a fix, I noticed that setRatio gets called twice, but only the second time did it have the values that would have caused skipY to be false. However, when it's called the first time with values that let skipY become true, the tween is killed, so when the values come in correct the second time... it's too late.
Thanks for your help... and GSAP!