Overall, it's wonderful, but every once in a while I get an erroneous measurement, off by several hundred Hz.
I'm using Timer2 to run interrupts at around 22kHz, so I'm wondering if that might be impacting the accuracy. I'm not smart enough to know for sure. Has anyone used this lib and dealt with similar issues?
You first have to define what a "frequency" is to you.
This very fine library uses a hardware feature (available in most microcontrollers) called "compare and capture".
It does very precisely determine the time between two rising edges of a signal.
When you encounter deviations here, it is most likely (but not necessarily) your signal, or an intermediate glitch.
When you want to read something like a "frequency" it is best to use an moving average, even better with a suppression of run-away values.