>> завершается раньше, чем закончится выполнение вызова:
Простите, не сильно вникал в суть вопроса и код не смотрел, но, если я правильно уловил суть, то посмотрите в сторону promise. https://www.google.com.ua/search?q=defer&oq=%D0%B2...
Имею в виду не вот такое расположение картинок, а возможность одновременного отображения фотографии, комментариев к ней и стрелок перехода к предыдущей/следующей фотографии.