wrapping setTimeout, in case the interval is >= 2^32 (yes, it happened)