Opa cara tudo bem? Legal você ter compartilhado sua experiência, tudo que vou falar é apenas uma opinião minha, eu não estou no seu contexto, então posso não entender tudo da real situação em que você se encontra.

  1. Se chegou a esse ponto sugiro que sente com seu "cliente" e explique a sua real situação, ele pode até chegar e prometer um monte de coisas só pra fazer você continuar, mas se isso está de causando tanto desgaste e não há nenhum retorno real é melhor sair, na minha opinião, como diz a frase alinhe-se com ele: "O que é combinado não sai caro", caso saia e o projeto acabe, como nimguém está recebendo o prezuíjo é mínimo.

  2. Toda dívida técnica que é deixada geralmente vira um bola de neve mais pra frente, ainda mais se isso começa no começo de projeto, e depois pra poder resolver esses problemas o cliente nunca vai entender porque pra ele é mais importante que o projeto gere dinheiro e uma refatoração por exemplo não dá dinheiro na visão dele, e também se o time não tem maturidade pras mudanças fica mais difícil ainda porque isso é uma questão de experiência e hábito.

  3. Se você acabar realmente querendo ficar, vai precisar de muita resiliência pra poder ajustar, alinhar e melhorar as coisas, foque em melhorar a comunicação com o time e deixe claro o que você quer, para que cada nova funcionalidade nova que entrar tenha pelo menos o mínimo de organização mesmo que demore mais tempo para ser entregue, e mesmo que o time continue fazendo de qualquer jeito começe a barrar o que eles fazem e sugira melhorias para poder ir de acordo com o que você espera, por isso a forma com que você vai se comunicar vai ser muito importante para todo esse processo.

Não mais, te desejo muito sucesso e espero que encontre a melhor solução para você.