The old PREFETCH_K loop pre-allocated all batches into Vec<BatchSample>
before training any of them. With 488 steps this meant 976 GPU buffer
lock/sample/alloc cycles upfront, causing multi-minute stalls on H100.
New loop: sample 1 batch from GPU PER, train it, sample next. Zero
prefetch, zero Vec accumulation, natural CPU/GPU interleaving.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>