Я не на 100% уверен в том, что используется, но я думаю, что вы немного ошибаетесь в расчете ЦП.
Я полагаю, что они делают что-то вроде.
Process A CPU Usage = (Cycles for A over last X seconds)/(Total cycles for last X seconds)
Я полагаю, это связано с "интервалом обновления", установленным в диспетчере задач.
Проводя небольшое исследование для вас, я нашел эту статью MSDN , в которой показан рекомендованный Microsoft способ вычисления времени ЦП для набора инструкций, но он может немного указать на их вычисление как хорошо.