After CUDA Graph replay with event tracking re-enabled, the total_loss
and grad_norm CudaSlice buffers have stale write events from capture.
cudarc's memcpy_dtoh calls device_ptr() which waits on these stale events,
causing CUDA_ERROR_INVALID_VALUE on H100.
Fix: use raw_device_ptr (ManuallyDrop guard) + cuMemcpyDtoH_v2 for the
2 scalar readbacks (8 bytes total — legitimate GPU exit for metrics).
Stream is synchronized before readback, so event ordering is guaranteed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>