Persist mode was rescheduling RAF every frame forever, forcing layout reads (scrollHeight) on each tick. Swap to ResizeObserver+MutationObserver that trigger short RAF bursts only when content actually changes. -10pp renderer CPU under active streaming.