I'm sorry, I misread (but it works at anything you can set a timer to, 250us included).
FlexiTimer2 uses double precision only in the set command (see the source to check) - it uses the hardware Timer2 to actually do the timing. However, there may be rounding issues, since the hardware timer is set with integer parameters. A purely integer version of the library would be quite impractical - the whole point is an intuitive interface, otherwise directly programming the registers is much preferred.
Of course, if you can afford about 1% (or maybe even less) inaccuracy, these issues are essentially moot.
FlexiTimer2::set(1, 1.0/4000, isr);