So this third clause, where the mouse is within range and the bar is not scrolling, doesn't need the heavy update-every-tick that is used by the other two clauses.  Can you change it to just set the new time directly here, and not trigger the other zoom logic?

Other than that, this is looking really good!