I have to know when 2 ms passes in a loop where elapsed code time is not predictable. The timing is not critical a few 100 us resolution is fine. I was thinking the watch dog could do this for me. How can I check the status of the watch dog? I'd like to avoid interrupts if possible.

Note that in CTC mode, the counter will never get above the value of OCR0A. Not also that the overflow flag is only set when the timer reaches MAX, which is 0xFF. So, in your case, the flag will never get set.

This, combined with the flaw in the logic of your if() means that the while loop will break immediately.

"Experience is what enables you to recognise a mistake the second time you make it."