Второй запрос работает быстро т.к. ограничение целостности UNIQUE по полю event_timestamp создало индекс. А оптимизатор похоже догадался что LIMIT+ORDER_BY не требует сортировки.
В таком случае самое простое, что можно сделать, это хранить в таблице experiment ссылку на предыдущий эксперимент (в виде id или сразу в виде timestamp), и вытаскивать эту запись одним более быстрым запросом.
select t1.*, c.user as `last_user`, c.datetime as `last_date` from topics as t1 inner join (select id_topic, max(id) max_id from comments c1 group by id_topic) t2 on (t2.id_topic = t1.id) inner join comments c on (c.id = t2.max_id);
Использовать ORDER BY для поиска максимального элемента не очень хорошая идея (хотя вроде оптимизатор mysql при использовании ORDER BY и LIMIT понимает, что сортировать не нужно)