useCallback для ChatSection стоял после раннего return (if (!task)) — в рендерах без задачи хук не вызывался → «Rendered more hooks than during the previous render». Правильное решение: компонент на module level с пропом taskId (стабильный тип + нет зависимости от хуков).