External interrupt fires early?

Riva:
what happens if you put varying length delays before enabling the interrupt, does that alter the 999 value.

Yes, for example, with delay(2000) instead, I get:

1999
2787
3787
4788
5788