I ended up using my own method, by checking for 3 states I call: tall(where the top and bottom faces of the rectangle have != y transforms) and shortVert(!= z transforms) and short horizontal(!= x transfroms). I created 12 states, moving L,R,U, and D from each of the orientations. I then rotate and move the cube using itween. The problem seems to be that this is causing gimbal lock, and after a few moves, I get odd rotations which eventually causes my float comparison on the transform of the 2 faces to create false positives due to the imprecise transforms caused by the gimbals lock, thus entering the wrong state for animation.
I've tried rounding off the rotations and positions during the idle state, but this doesn't fix the issue and seems to make the behavior worse.
I really don't even know how to begin to fix that sadly.