Fix a race i noticed while pondering #1500:  We must snapshot the
object length while processing the Range header to ensure consistent
results when streaming from the backend.