Как в интерфейсе поступить при медленной анимации и частых действиях пользователя?
При скролле ставить в очередь позицию блока, и вычислять скорость анимации по длине очереди, чем выше, тем быстрее. Анимация должна идти к последнему элементу из очереди. Если нажать на противоположную кнопку, то анимация должна останавливаться на ближайшем следующем элементе, очередь очищаться, и начинаться анимация в противоположную сторону. 
Анимацию придется делать на js, т.к. в transition нельзя плавно динамически изменять скорость анимации.
По моему, достаточно сделать время анимации равным 100мс и debounce на 100мс.
https://jsfiddle.net/tz4pwfn1/39/
Иначе, если зажать кнопку, то прокрутка идёт чересчур быстро.