Bom dia Graça,
Quando você diz "um aplicativo sem ACBr não está ocorrendo o erro", você esta se referindo a um outro aplicativo que emiti CT-e, correto?
Como você fez testes com os certificados A1 e A3 acredito que esteja usando o Capicom, correto?
Você configurou o componente para o libCapicom ou libCapicomDelphiSoap?
Quanto as configurações vamos esclarecer para que serve cada uma delas.
Logo após o envio do lote recebemos o numero do recibo, que atesta que a SEFAZ recebeu o lote.
De posse do numero do Recibo podemos consultar para saber o resultado do processamento.
A propriedade AguardarConsultaRet determina o tempo (milissegundo) que o componente vai esperar para realizar a primeira consulta.
Esse tempo de espera me refiro ao tempo entre o retorno do Envio e a primeira consulta.
Se você atribuir o valor True a propriedade AjustaAguardaConsultaRet e antes de enviar, consulta o status de serviço, a propriedade AguardarConsultaRet será automaticamente configurada pelo componente através de uma informação retornada pela consulta ao status.
Aconselho não adotar essa pratica, pois poderá ser incluída na lista de empresas que realizam consumo indevido do Web Service.
E volto a informar que a SEFAZ estuda a possibilidade de acabar com o serviço de consulta ao status, sendo assim vamos deixar isso de lado.
Ao realizar a primeira consulta podemos ter como resposta que o lote ainda se encontra em processamento, neste caso devemos aguardar um tempo e tentar novamente.
O tempo de espera (milissegundo) entre uma consulta e outra devemos estabelecer na propriedade IntervaloTentativas e a quantidade de consultas a serem realizadas devemos definir em Tentativas.
Depois de refrescar a memória sobre as propriedades, eu deixaria elas com a seguinte configuração:
ACBrCTe1.Configuracoes.WebServices.Tentativas := 10;
ACBrCTe1.Configuracoes.WebServices.IntervaloTentativas := 2000;
ACBrCTe1.Configuracoes.WebServices.AguardarConsultaRet := 2000;
ACBrCTe1.Configuracoes.WebServices.AjustaAguardaConsultaRet := False;
Aconselho a parametrizar esses valores, ou seja, você deve ter uma tabela no banco de dados onde tem as configurações do componente, tais como UF, ambiente, PathSchemas, etc. É interessante incluir nessa tabela mais alguns campos para poder ter as configurações acima.
Desta forma você pode mudar essa configurações em a necessidade de recompilar a aplicação.