It makes more sense to start backing off after the first sleep. Then you wouldn't have an initial `duration` of 50ms that immediately gets multiplied by 2.