You've got a timer going off 60 times per second. That's once every ~17 milliseconds. But your main loop takes ~41 milliseconds, because you're getting 24fps. So when your main loop finishes running, it waits for the timer to hit, but it's already passed 17 and 34, so it's not going to hit now until it reaches 51 milliseconds. 1000/51 is 20 frames per second, give or take the rounding I did to get to 17 and 41.
Are you sure? (Not with the Maths), but wouldnt the timmer alreay have fired? That is wouldnt you have two timers events already on the event queue?