A ativação ou não da contingência independe de estar realizando uma operação ou não. Digamos que a SEFAZ está fora do ar e por isso você está recebendo uma Exception, ai você vai ao site da SEFAZ é lá está a informação "Sistema de Contingência Acionado as 14:00hs por falha do servidor principal da SEFAZ", pois bem, nesse caso o usuário tem que acionar a contingência e colocar o motivo. Na versão 4.0 isso irá criar um arquivo com os dados da contingência na pasta config.
Quando a classe ToolsNFe for invocada novamente, ela irá verificar se existe o arquivo de contingência e se existir irá ativar automaticamente a contingência, ou seja irá acessar as URL do SVC e não as normais.
Mas outras tarefas devem ser executadas pelo ERP como mudar alguns dados na criação do XML (veja o manual) ai é só usar normalmente pois a contingência SVC é igual ao sistema normal.
Mas em algum momento a SEFAZ vai retornar ao funcionamento normal e vai bloquear a contingência, ai o usuário tem que desativar a contingência, isso irá remover aquele arquivo da pasta config e o sistema retomará as condições normais.
Não !!! a API não faz contingência OFFLINE, a contingência OFFLINE somente é viável em alguns estados e unicamente para a NFCe (em SP não pode usar OFFLINE tem que usar SAT@ECF)
A contingência OFFLINE como o próprio nome diz não tem conexão, então a unica coisa que pode ser feita é gerar e assinar o XML e guardar para enviar quado estiver ONLINE, mas eu repito isso serve apenas para NFCe e apenas em alguns estados.
Roberto