Я может и не в тему выскажусь, но помнится давно встречал похожее обсуждение только там даже не .net был а вообще использование таймеров и как вариант использование приостановки потока на заданную величину не давало точной сработки, так вот в потоках и так понятно требуется время на переключение и будет уже разбежка, а с таймерами не помню что но точно помню что там тоже срабатывало не совсем раз в заданное значение, а с небольшой задержкой.
Причем чем больше нагруженность системы, тем больше эта разбежка была