FanatPHP, спасибо, что натолкнули на решение проблемы своим комментарием! Был ещё один фрагмент, где прога создавала новые объекты (внутри цикла foreach), и когда я это устранил, всё стало работать быстро. Вопрос решён ^^
Вы делаете упор на parent, а он, по сути, используется только при рекурсии, а при вызове из html он всегда равен нулю. Как я писал в вопросе, если убрать рекурсию (а значит, и все эти заморочки с parent), то страница всё равно грузится очень долго.
Да, кстати, я косякнул немного с запросами: сейчас исправил, можете в посте посмотреть. Но проблема всё равно не ушла