I'm a bit concerned about this given the default of 4096. I'm pretty sure that's the granularity grinder was using before John changed it and chopped off nearly 50% of the time to sync.

I think we should investigate a difference between buffer size and progress report frequency. It shouldn't be hard to key off of bytes_downloaded to fire progress messages at a longer interval. The question is if the downloader does that or the fire_download_progress method (I'm leaning towards the latter under the same rationale as most of my comments so far: all downloader impls would have to implement that check).