Видимо, это баг, связанный с position: fixed. Если поменять position на любой другой, то анимация снова работает. Фиксированные элементы отрисовуются отдельно, и видимо, хром забывает отрисовывать каждый кадр, либо пытается экономить ресурсы.
При приближении к верхней и нижней границе скрипт меняет стиль этого элемента, потому анимация при этом отрисовуется нормально.