Scroll bug in "Drag heroes" task.
If hero is dragged up after scrolling down, scrolling down continues until newBottom <= documentElement.clientHeight.

Что там именно не так, поясните?
При перемещении изображения героя увеличивается координата нижнего края изображения относительно окна.
let newBottom = newY + dragElement.offsetHeight
Прокрутка срабатывает когда нижний край изображения перемещается за нижнюю границу окна.
if (newBottom > document.documentElement.clientHeight) {...} (1)
Если после прокрутки вниз, не отпуская изображение, потянуть его вверх, то newBottom в первое время будет больше document.documentElement.clientHeight. В связи с чем выполнится условие (1) и произойдет прокуртка вниз.