Да точно, попутал T0MCR и T0TCR, т.е. не сбрасывался он последней инструкцией. Про тиканье - тогда я воспринял это как "тикание самого таймера", а прерывание не проверил.
Короче, при инициализации надо вместо
<c>
T0TCR = (1<<0); // CE = 1, enable timer
</c>
воткнуть
<c>
T0TCR = (1<<0) | (1 << 1); // enable & reset timer
</c>