Yes, as mentioned.
Do you have a good solution for that besides just always making _lasttime 32 bit? I think that people should be expected to make their variables long if they're going to be near the maximum, especially since the problem only appears if you're going one or two milliseconds below the max (admittedly more if your loop actually does something that takes some time.
I changed the original post from using > to using >=. After that, I could use runEvery with 32766 but not 32767. And unless you're doing many milliseconds worth of processing in the loop, it'll work up to at least 32760, which is fine for me, especially since it's saving so many bytes (use it 3 times with ints = 6 bytes saved)