Запрос в порядке. Вы хотите этот индекс:
CREATE INDEX idx ON log (id_fk, id_category, timestamp DESC);
Или даже это:
CREATE INDEX idx ON log (id_fk, id_category, timestamp DESC, message);
Таким образом, можно быстро найти наибольшую временную метку для двух категорий. С последним индексом даже нет необходимости читать таблицу.