Ну JQ понятно дело это смешно.
2,5 сек для 1000 элементов это очень много, может я чего не понял? Вставка 1000 узлов это 5-15мс пусть.
Остается либо вставлять html если узлы разношерстные, либо оперировать DOM createElement, если простые, но много.
Можно просто прелодер заделать и вставлять узлы группами с разрывом через promise, setTimeout(f,0), если там действительно улов тысячи, чтоб браузер не подвисал.