Храните в БД время нажатия, при каждом открытии страницы берете из базы запись когда последний раз кнопка была нажата текущим пользователем. Вычитаете из текущего времени время нажатия. Если больше 3 часов то показываете.
Не совсем конечно красивый вариант, но должен работать.
Настраиваете nginx в Орле, чтобы он отдавал некую заглушку в стиле "Сейчас ваше изображение обрабатывается, будет доступно через некоторое время".
При загрузке картинки вы кладете ее в определенную папку в Чайке. И по крону перегоняете картинки из этой папки в Орел.
Либо можно пойти дальше, настроить nginx в Орле чтобы он искал файлы сначала в этой папке, а потом в Чайке.
Курсы лучше брать оттуда, откуда вы их берете при рассчетах. Из вашего банка например.
А в остальном не вижу сложности. Пересчитывать валюты можно хоть на JS по событию изменения текущей валюты пользователем.
Если хотите видеть сайт который захостили на XAMPP то вам нужен проброс порта. Делается на разных роутерах по разному но принцип один и тот же. Назначается входящий порт на роутере и IP/PORT куда роутить с него пакеты.