Buffers LLM token stream and emits complete sentences.
Collects LLMTextFrame chunks until a sentence boundary (., !, ?)
is found, then pushes each complete sentence as a TextFrame. Remaining
text is flushed on LLMFullResponseEndFrame or EndFrame.