Paranoia.
Clarify
Increase number of keys to write before rotating, add FIXME.
Don't queue job twice if over the limit, reduce code duplication.
FIXME
Use return value of -1 to indicate empty, and document.
Make isEmpty() package local so we can use it for unit tests but not other stuff.