Ok, I’ll try to explain in a different way.
The floating point precision problem i mentioned is the reason -4 wont actually be -4, but could be like -3.999995. Apply small differences lots of times and it adds up.
However your main issue is that your applying increasing rotations every FRAME of the game, not every frame in the timeline! This means that if you were to render 60 frames during one second, the update will activate 60 times, the first with 0, the next with 1/60, the third with 2/60 and so on, towards the end of the second it will be giving out 1. And your adding this together, the sum will be higher then one, thereby causing you issues!
Found this tutorial showing a different way of doing it.