Movement is only processed once per frame (tick groups). Camera rotations can be updated whenever.
FPS fluctuates so you can get multiple timer executions if timer interval is lower than tick interval.
Printing delta seconds or tick count to log on each execution of timer event would go a long way toward troubleshooting.