Caso ainda precise de apoio, a unica forma que vejo de seguirmos adiante seria com exemplos do código usado mesmo. Fico a disposição.
Depois de uns dias de luta, não consegui resolver aí mudei o cenário inteiro.
Dando uma pesquisada acabei encontrando o Clerk https://clerk.com/
Eles proveem todo um sistema de autenticação com fatores de verificação nativamente e é super simples de implementar, tanto que na plataforma deles tem um vídeo mostrando como fazer a implementação num projeto em 2 minutos, sem falar que eles possuem um plano gratuito que aceita até 5k cadastros na base.
Acabou que migramos toda a parte de sign-in/sign-up pro Clark e refatoramos algumas funções de protected routes.
Já ouvi ótimos comentários do Clerk, acredito que tenha feito uma boa escolha.
Você comentou que esse projeto tem back e front separados, mesmo assim eu recomendo o Supabase como opção para esses casos também, ele abstrai (além de várias outras coisas) o processo de autenticação.
Opa, valeu demais pelo feedback, é muito bom saber que o Clerk foi uma boa escolha kk
Depois vou dar uma olhada no supabase.
E novamente muito obrigado pelas dicas e pelo apoio.