Да все верно. DNS по факту смотрит только на первый (основной) сервер.
У обоих web-серверов настроены виртуальные хосты на server_name example.com.
Контент пользователю отдает первый сервер. Просто он прозрачно для пользователя для location /service делает проксирование на второй сервер. О втором сервере пользователь ничего не знает. Считайте его просто бекендом.
У форка putty, который называется kitty есть автоматический logon, помоему не совсем то, но можно посмотреть, возможно это уже как-то упростит Вам жизнь: kitty.9bis.net habrahabr.ru/sandbox/21689
Возможно какая-то хитрая матрица прав настроена в самом конфиге ftp-сервера. Попробуйте также через другой ftp-клиент зайти и походить по каталогам, например filezilla, чтобы убедиться что проблема не в lftp.
Цикл был написан для bash. Его можно завернуть в отдельный скрипт, который будет затем вызываться из того же php или можно запустить руками, если есть доступ к серверу по ssh.
Этот ваиант вообще в крон не надо добавлять. Его надо просто запустить, но к нему лучше дописать ваиант с lock-file.
Lock-file - это пустой файл, который создается при выполнении итерации, для того, чтобы быть маркером, что данная итерация запущена. По окончанию итерации lock-file удаляется. Проверяя наличие такого lock-file Вы можете быть уверены, что при его отсутствии предыдущая итерация закончена и можно запускать следующую или если файл существует, то она еще в процессе и запуск следующей приведет к образованию очереди и лучше запуск не делать.