может если при считывании счётчика (old_count) он слишком близко к переполнению (< N тактов) вставлять цикл ожидания переполнения, и когда оно явно произойдёт (new_count < old_count) считывать поля структуры времени, и делать реверс (обратный отсчёт ровно на одно переполнение счётчика. Ммм..?
Это моё личное предвзятое мнение. Любое совпадение с реальностью является случайным и непреднамеренным.