Turns out this was an issue with the timer.
The timer is called once every 2.0 / 28.0 = 0.7 seconds. That is what was causing the issue. If I increased the timer duration to 0.2 it worked fine but the animation wasn't very smooth.
With 0.1 as the timer interval it worked most of the time, but not always. It was more easily reproducible on older devices (2nd/3rd generation iPod).
Is it that the OS can't handle such quick updates via the timer?
Could someone please explain what the issue might be?