Minha pergunta foi respondida este tópico nos fóruns do Codeigniter .
A chave é não inicialize automaticamente o banco de dados:
$db['xxx']['autoinit'] = FALSE;
Para suprimir erros você pode definir isso
$db['xxx']['db_debug'] = FALSE;
Então, no seu código que verifica o estado do db, verifique TRUE/FALSE da função initialize():
$db_obj = $this->database->load('xxx',TRUE);
$connected = $db_obj->initialize();
if (!$connected) {
$db_obj = $this->database->load('yyy',TRUE);
}
Aqui está meu arquivo de configuração completo para referência futura:https://gist.github.com/3749863 .