Is it not possible to subclass your own scroll and then, in the handle method, simply check for the user releasing the mouse button drag?
Or even in the subclass draw() method, note when the widget is redrawn at a different offset, perhaps (though that seems like it would be trickier, perhaps...)
Is the redrawing of the scroll a slow operation, such that it completes a significant time after the user releases the button?
That said, polling on a timeout possible is not to hideous a solution, since it does allow for the redraw of the scroll to complete asynchronously to toher events in the system and still do the Right Thing, in effect.