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