Depending on the values you choose, it may be skipping over 0 without _rotation ever being exactly equal to 0. You can deal with by changing this line:

if (Math.round(this._rotation) == 0)

to this:

if (Math.floor(Math.abs(this._rotation)) < 1)

Which stops it from spinning if the rotation is near zero. If the 'slow' speed is too high, then you may need to change the '1' to a higher number to get it to stop.

- Jim