Он не то, чтоб совсем не справляется, просто не точно работает.
1. CreateTimer() и WaitTimer() - работают правильно, притом всегда;
2. Если в программе нужен не один, а несколько "разнокалиберных" таймеров- пойдёт этот код:
NeadedDelay=1000/ExpectedFPS
...
IF DelayTime<MILLISECS() THEN
DelayTime=DelayTime+NeadedDelay
IF DelayTime<MILLISECS() THEN DelayTime=MILLISECS()+NeadedDelay
;код ставить тут
END IF