Mmmm.. good one.
There's only one possible cause, no matter how unlikely it may seem to me.. there's a line of code to schedule the beginning of the animation, which looks something like this:
timer.expires = jiffies + hijack_init();
Which should really be something like this instead:
timer.expires = hijack_init() + jiffies;
The hijack_init() routine always returns HZ/3. But.. because hijack_init() also does a flash restore call, which might sometimes take longer than 3/100 of a second if it has to reset the flash buffer chain, it's theoretically possible that the timer expiry might be invalid (a time in the past) by the time the timer gets started..
Such simple things.. look for v249.
-ml