Давняя боль. Моя реализация на ангулар
почти всегда чаще работает, чем не работает, слегка подёргивается. Angular Material реализация вообще полное гуано при выделенном требовании. Просчитывать каждую строку высоту заранее- наивный тупой путь, убивает смысл виртуальности.
Добавилось требование при скролле до конца, подгружать / добавлять в конец элементы. Когда это большая пачка в 100 элементов- ок. Когда это 1-2 элемента в конец- стало сходить с ума при корректировке ошибки смещения.

Убил 1 день и 1 выходной, пытался так и сяк изменить корректировку ошибки. Вроде стало получше в одном юзкейсе- и похуже в другом.
Смотрю в телеге-веб- вроде на вид это виртуальный бесконечный скролл, однако он не дергается. Как они этого добились, значит можно? Или они всё равно грубо оценивают высоту элемента функцией, а потом вписывают элемент в высоту с обрезанием невлезших частей?