Yeah, it always seemed pretty wasteful to me. In every single forward pass the LLM must basically start out from scratch, without all the forward-looking plans it made the previous times, and must figure out what we are doing, where we are in the generation process, as in the movie Memento, waking up after an episode of amnesia, except you're waking up in the middle of typing out a sentence, you can look at the previous typed words, but can't carry your future plans with you ahead to the next word. At the next word, you (your clone) again wakes up and must figure out from scratch what it is that we are supposed to be typing out.
The obvious way to deal with this would be to send forward some of the internal activations as well as the generated words in the autoregressive chain. That would basically turn the thing into a recurrent network though. And those are more difficult to train and have a host of issues. Maybe there will be a better way.