No final do ano passado enfrentei problemas com relação a demora para receber o retorno de "sem conexão".
No meu caso tinha duas coisas bem distintas:
1 - Recebia problema de conexão mesmo quando elas não existiam, ou seja, a internet estava super estável e mesmo assim, cerca de 10 % das NFCe emitidas no dia entravam em contingência por problemas de conexão.
2 - a demora para receber o retorno de falha de conexão.
Quanto ao problema de falha de conexão, recebi uma grande ajuda do Daniel na época e chegamos a conclusão que faltava alimentar uma propriedade (ConectionTimeOut) no fonte do acbr no momento do envio. Essa alteração foi feita no ACBR mais ou menos em Dezembro de 2016 (não me recordo direito) e visa respeitar o tempo definido na propriedade TimeOut do definida no ACBR. Com essa alteração, se vc definir 10 seg no Time Out, o erro de problemas de conexão vai retornar em 10 seg e não mais vai demorar minutos para retornar. Nesse caso, bastaria vc atualizar o ACBR para a versão mais recente para resolver esse problema.
Sobre o problema de retornar falha de comunicação mesmo sem que ela realmente exista, fiz uma alteração no meu sistema. Eu utilizara o Componente em um DataModeule carregado em memória. Passei a usar o componente em um Formulário normal e destruir e criar o mesmo no final de cada envio. Fazendo isso, pararam de dar os problemas de falta de conexão (exceto quando está sem internet mesmo).
Gostaria de deixar bem claro que o fato de não funcionar no DataModule foi uma experiênica que tive aqui, não quero dizer que o ACBR não funciona dessa forma. Apenas para mim funcionou melhor criando e destruindo o formulário onde está o componente a cada envio.
Espero ter ajudado..
Abraço..