так стоп, а при вызове setValue что будет происходить дальше? ну вот перезапустится компонент, а как текущий-то прервётся?
Текущий компонент не может прерваться потому что он не "запущен". Функция отработала, вернулся vdom, он отрендерился в DOM. Всё. Когда произойдёт изменение пропсов или хука (setState) или другая причина перерендерить компонент - твоя функция будет перезапущена, вернёт новый vdom и так далее. Хитрость useState в том, что он просто при каждом вызове твоей функции будет (очевидно) перезапускаться и возвращать актуальное значение стейта.