yeah, you were pretty close :)
You were reading the mouse position from the layer that was scrolling, and that can lead to wacky results, so I changed it to read from the non-scrolling layer (Reduced Size), and then set scrollx based on the mouse's relative position from where it started.
I set the indicator to a scaled down relative position as well. I moved the indicator to the non-scrolling layer because I thought it was easier that way.
I disabled drag and drop on the indicator, because it was easier to just reverse the scaling if the mouse clicked on the indicator instead of the background. I also used Clamp when setting the indicator so you don't have to separately check if it has moved beyond its limits.