полностью логичное поведение.
при клике ты берешь parseFloat($('.basket-sum').html()) и работаешь с ним.
если в момент клика там не больше 5000 - он и не будет скрываться.
а скрываться будет уже после того, как в момент клика в $('.basket-sum').html() будет больше 5000
школьный курс математики. S = v*t
тебе нужна одинаковая скорость (v), значит тебе нужно подбирать правильное время (t, которое ты будешь вписывать в функцию animate) в зависимости от пути (S).
итого получаем формулу t = S/v;
вот и ищешь путь от нынешнего scrollTop до offset().top твоего элемента - это и будет (S).
ну а скорость уже сам подбираешь методом тыка.