Throw Error when callback is called too many times.

In certain situations calling the callback more than once will advance internal counters and cause silent data drops.