Olá!
Consegui resolver o problema. Eu estava fazendo o seguinte:
ERRO: Quando eu assinava a DPS via código, eu copiava o valor de dpsXmlGZipB64 do terminal e testava o envio manualmente no Insomnia. Isso causava o erro no processo.
SOLUÇÃO: Passei a realizar todo o fluxo diretamente pelo código — geração, assinatura e envio — sem copiar nada manualmente. A partir do momento em que parei de intermediar pelo Insomnia, tudo funcionou corretamente.
Em resumo: monte, assine e envie sua DPS diretamente pela aplicação. Não copie o conteúdo do terminal para testar em outro lugar.