Sometimes this kind of thing will happen (also happens with some collision events when moving fast) and the easiest way I have found to deal with it is to manually set it back to our desired angle (or position) when it overshoots.
Here is a working version of your cap: https://db.tt/fJ9rzXfm
We have added a new variable to the boss object called "SpinAngle" and each time we make it spin we just add 90 to the amount.
Just a piece of advice, although it is undoubtedly easier to make a long chain of events using the "wait" command - from my experience it ends up being very difficult to work with for a number of reasons. If you can, stick to trigger style events (that is, activate a spin function, when the spin finishes activate the shooting function etc).