Timer using millis()

Dyslexicbloke:
That doesn't appear to be it .....

You're comparing the behaviour of a signed byte against an unsigned int. The word size doesn't affect the behaviour, it only affects the value at which rollover occurs. Whether it is signed or unsigned does affect the behaviour, though.