Сергей Соколов, а для чего переменная dt? Она же не используется. И еще вы завели константу distance = target.x - follower.x, потом снова используете выражение target.x - follower.x, хотя можно distance подставить. Исправьте, пожалуйста, вдруг и мой fiddle кому-нибудь потом скинете)
Сергей Соколов, а если взять другую функцию, не ступенчатую, а у которой после первой ступеньки x остается на одном уровне и уходит в бесконечность, то тоже будет работать?