Configure o script de inicialização padrão para usar o roteador. Você já mostrou como fazer isso.
Considere o roteador como conexão principal.
Faça um script, que será executado com o crontab a cada X minutos. O script fará ping em algum endereço da Internet, por exemplo, 8.8.8.8. Caso o ping falhe, ele executará o script para configurar a conexão ad-hoc.
Teste as configurações desligando o roteador.
Apenas o problema restante é o que acontece se você de alguma forma cometer um erro em sua configuração? Existe uma maneira de reiniciar a máquina? Ou qualquer outra opção?
Nesse caso, eu consideraria usar alguma outra máquina para testar a configuração, e somente quando você tiver certeza de que tudo funciona, copiando a configuração para o dispositivo desejado.
EDITAR:
para verificar se o comando bash é o sucesso de um comando bash, use $?
Por exemplo,
ping 8.8.8.8
if [ $? -eq 0 ]
then
echo "0 means command success"
else
echo "non 0 means not success failure, specific commands have exact code for each of failure messages"
fi