O produto está ficando muito bom! Deixa eu contribuir com 2 informações, do ponto de vista jurídico da assinatura.
Ponto 1
Quando a pessoa clica em assinar é solicitado o e-mail para assinar. Assumindo que a pessoa é honesta não teremos problemas. Mas assumindo que não, ela pode forjar um e-mail descartável só para assinar. No futuro você perde a capacidade de provar o aceite do cliente (o tal do "eu não assinei")
Solução proposta: para não engessar muito, faça uma abordagem mista. No cadastro onde o usuário da plataforma cria a proposta, insira ele o e-mail usado para asinatura. Assim é uma camada a mais de checagem.
Uma vez feito isso, esse e-mail vai pre-preenchido e ineditável. Caso não preencha, então vc considera se vale manter como está.
Ponto 2
Sobre certificado ICP-Brasil: sua plataforma no momento está no nível "Avançada". E está correto, pois a "simples" é frágil, e a "qualificada" é inviável (ninguem tem e-cpf).
Mas tem um ponto aqui: se em algum momento a parte falar "não assinei" ou "esse contrato mudou", ou ainda, "eu assinei esse contrato, mas foi semana passada para outro projeto. esse não é do primeiro."
Aqui temos que observar 3 pontos:
1. você precisa garantir que a pessoa assinou.
Isso já está garantido com o envio do e-mail.
2. Você precisa garantir a imutabilidade do arquivo.
Tem algumas formas de fazer isso, e uma delas poderia ser anexar o contrato após assinado para o assinante. Você teria uma prova de que ele recebeu o contrato, e é igual ao contrato questionado. Mas isso é trabalhoso para o advogado, demanda quebra de sigilo de comunicação. Se outras provas forem frágeis um juiz pode negar.
Você citou docuSign, clickSign... Eles fazem diferente: eles assinam o contrato com o próprio certificado digital e-cnpj. E usam um padrão de hash já determinado pelo ICP-Brasil. Então apenas apresentando o PDF em um eventual processo, a imutabilidade já pode ser assegurada com amparo legal.
Se quiser ver com os próprios olhos, caso você tenha aí um documento assinado por eles, acesse o site a seguir e veja os dados da assinatura digital: https://chaindoc.io/pdf-verify (obs. este é o melhor site que já encontrei para o tema)
3. temporalidade da assinatura
Aqui é único lugar onde você pode ter custo financeiro com cada assinatura. Para garantir a data em que o contrato foi assinado (pois ele pode ser íntegro, mas nada garante que a data que está nele não foi forjada antes da assinatura (ex. fingir que vendeu um carro antes de ter vendido para escapar de uma penhora)), você precisa de um carimbo de tempo. Você pode usar um serviço internacional de carimbo de tempo gratuito, mas o problema é que o Brasil não reconhece esse carimbo. O carimbo válido é o de empresas credenciadas no ICP-Brasil. Tem a Serpro, que é do próprio governo (https://loja.serpro.gov.br/emiss%C3%A3o-de-carimbo-de-tempo/product/carimbodetempo). Ela tem um bom custo, principalmente em volumes. Mas há outras também. Vale pesquisar. No link que te mandei tem uma aba com preços.
Esse carimbo de tempo é aceito de forma inquestionável pelo justiça, uma vez que um padrão de algorítmo envolvendo a data e o hash do pdf é aplicado.
Lógico que a data em que a pessoa recebeu o e-mail já prova isso. Mas veja que caímos no problema de quebra de sigilo anterior.
Minha opinião
Seu projeto é robusto e suficientemente válido juridicamente, mas empresas com click e docusign adotam essas camadas extras de segurança, para facilitar fazer prova no futuro.
Bonus
Inclusive, além do PDF do contrato, costumam emitir após todos assinarem um outro PDF que é o "relatório de assinaturas". É a trilha temporal das assinaturas, os metadados de quem assinou (ip, geolocalização...) e, lógico, alguma identificação que ligue este documento com o documento assinado (ex. o original tem um uuid impresso em cada página, e nesse documento ele é citado. esse uuid pode ser o id da chave primária do contrato no seu sistema).
Abraços!