So... the reason I went with copying out of the buffer, which was really just three lines of code, was that detaching the initial buffer implies massive overallocations. The largest block is like 200x the wire size, and it can be much worse. So that' prohibitive unless the allocations can be trimmed back before dispatching the block to cache.