Can't fully rotate object with quarternion rotation enabled
Quaternions are only in the range of -1 to 1, and so 0 and 360 (and 720 and 1080 etc.) are basically identical.  That's why the cube doesn't rotate, because it has nowhere to go.  

Quaternions also generally take the shortest path. That's why you need multiple keyframes. The algorithm might be deciding that it's quicker to go back the way you came vs. go forward, which gives you undesirable rotations.  More keyframes should solve it.