Да я просто был уверен, что все с этим сталкивались и есть устоявшийся вариант. Мне с send_after тоже пришла в голову мысль, и в стейте хранить, запустили мы таймер или нет (потому что спать больше 5с не надо)
Посмотри доку для генсервера, там каким то параметром рчдом со стейтом можно передавать тайм-аут. Вот только я не помню что он конкретно ждёт, но может тебе поможет