Uma coisa que faço no meu sistema é qdo envio a nota, e recebo o status 103 (lote recebido com sucesso), eu seto minha nota pro status Em Processamento. Se ao consultar o retorno, ela estiver autorizada, já muda pra status Autorizada e ótimo. Se ocorre algum demora no retorno, ela vai ficar com aquele status Em Processamento. Nesse status, o botão de Transmitir não está habilitado, para evitar que ele envie novamente a mesma nota. Ele só tem o botão de Consultar habilitado. Qdo consulto, caso o status que veio no retorno é diferente do que tenho no banco, atualizo a minha nota. Tem funcionado sem furo até agora.
Tente adaptar esse ideia ao teu sistema.