Adds a timeout to the stop function as to avoid a stop and an instant request after that

I had an "issue" where my app would instantly request something after the bar had completed, making it look like it just returned to zero instantly. Since that looked kind of weird I added a timeout to the `setComplete` method with a customizable threshold.

By default, the threshold is `0` meaning it behaves just like normal.