full single rotation last pass strange behavior (incomplete X / Z rotation)
It is because of the way quaternions work.  To perform a single rotation from q=(1,0,0,0) around axis (0,0,1) it will go from (1,0,0,0) through (0,0,0,1) and return to its original orientation as (-1,0,0,0).  Now it may seem strange to start at (1,0,0,0) and end at (-1,0,0,0) and still be in the same orientation, but that is just the way quaternions work.  q and -q represent the same orientation.

Since you aren't ending your spin at (-1,0,0,0) that means the animation system animates the figure unspinning instead of completing the spin.

I first realized these properties of quaternions back in 2014 shortly after I asked How do I ensure a sequence of quaternions from matrix.decompose() is continuous? .  Take a good look at the difference between the fcurve screenshot in the question and the screenshot in the accepted answer.