Consume one pending uint32 [1] token (unevaluated is fine) and advance
every cache one position. The returned logits [1,1,V] belong to the
caller; evalWith holds cache updates that must ride the same async
evaluation. A step that throws leaves state exactly as it was.
A graph's compiled single-token decode step: the whole forward replayed from one recorded graph instead of rebuilt per token. The scheduler chooses it once, for a row whose caches all declare the compiled-decode capability and hold no batched layout; it has no fallback.