Seria bom dizer onde o chatbot foi construído, se estiver utilizando Next.js não tem o pq da lentidão, se você colocar no lado do client-side.
Se estar colocando isso no lado do server-side acredito que não seja uma boa escolha, até daria para fazer, salvando um timestamp no banco de dados e verificar com o atual.
Estou desenvolvendo com Vue.js, mas preciso garantir que essa lógica não fique no lado do cliente para evitar qualquer possibilidade de manipulação pelo usuário.
Também preciso garantir que, se o servidor tiver algum problema, os dados dos usuários não se percam e eles possam ser redirecionados sem complicação depois de uma queda.
O que seria a manipulação que o usuário iria fazer?
Você pode salvar o progresso no localstorage caso perca contato com o servidor, mesmo que ele atualize a página o progresso vai estar lá.
Se entender o que realmente o que ele iria perder, não consigo pensar em algo.