I see. So in short, keep handling timer overflow flag (poll or interrupt) and don't bother trying to clear any counters atomically.
For me, I need to grab each N ticks and do N things. If I can clear the counter, the on the next go around, I can simply read the counter and not do math or hopefully not worry about overflow.
If I can't clear the counter, then it's just more math and logic (which I was trying to minimize)