Ну вот эту часть алгоритма можно ускроить сначала найдя сколько там записей всего, а потом распараллелив запросы с разным offset. Странно, что не отдается количество результатов в целом, но это тоже можно решить: попробовать что-нибудь вроде метода половинного деления, чтобы за несколько запросов понять сколько там всего записей