1. запрос с протухшим обычно даст 401, ты запускаешь процесс получения нового токена и повторяешь запрос
2. обычно с токеном передает время жизни, можно самому контролировать его и не допускать пункт 2
А что если пользователь закроет страницу, получается при следующем входе его "вход" просто сброшен
это почему? повторюсь, процесс получения нового токена для юзера прозрачный.
Да, самое главное, перестаньте использовать jwt в юзерском фронтент-бекенд, он лучше всего подходит для взаимодействия между сервисами