Since the lib uses recursion to pull down and fill itself up, I'm running into problems with hitting the top of the call stack when using a high water mark over, say, 4000. I didn't investigate too deeply into what the limit was.
An option to have it invoke read via setImmediate every N iterations could solve this without much performance penalty.