You are a life-saver. It's a little jumpy occasionally but it's leagues better than it was before with the delays. normalize Scroll was the trick.
I did have to put it after my timeline initialization which I thought was interesting. I would think before would make sense, like the default functions but I guess not.
gsap.defaults({ease: "none"});
gsap.config({force3D: true});
const tl = gsap.timeline({scrollTrigger:{
trigger:"#scene",
scrub: 1,
pin:true,
start:"top top",
end:"+=500%",
}});
ScrollTrigger.normalizeScroll(true);