Ну заюзать очередь на том же gaerman или ещё чем нибудь будет не проще.
Задачи которые должны выполняться постоянно я просто запускаю раз в час или чаще с защитой от повторного запуска, там где хочется красивое решение юзаю внешнюю очередь.
C таким подходом роутеру даже нет смысла диагностировать отсутствие линка, так как к этому может привести только сломанный кабель или выключение света в подвале, первое очень маловероятно, второе мне кажется вырубит всех провайдеров.
Средствами бюджетными тут не сделаешь, я ни разу не встречал такого, в любом случае на уровне обычного пользователя это реализуется даже в линуксе пингом какого нибудь яндекса, и переключением канала при отсутствии пинга.
Задачи которые должны выполняться постоянно я просто запускаю раз в час или чаще с защитой от повторного запуска, там где хочется красивое решение юзаю внешнюю очередь.