You should post the code that produces the red sphere too, so i can figure out what you try to do.
I assume you try to match physics to some animation - why so?
Also, if you control a physical object by changing its velocity, typically you do not care about acceleration. You care about acceleration only if you control the object by torque. E.g. for a question like "i want angular velocity of (10,0,0) - what torque do i need to achieve this?" Here acceleration matters, but by setting velocity directly you bypass any current physical state and just change it.
(I assume that's one cause of what you mean with oscillation)
At this line:
vec3 angularVelocityVector = GEMultiplyVectorAndScalar(GEAxisFromQuaternion(quaternion), GEAngleFromQuaternion(quaternion));
You calculate velocity from orientation after rotating 3 times. This makes no sense. You should calculate it from a rotation.
Note the difference between both terms (comparing angular to linear stuff here):
Orientation is like position or a point, describing state in space.
Rotation is like a displacement or vector, describing a difference between two orientations, or how orientation changes if we rotate it.
Differentiating between those two terms also when thinking about a problem helps a lot to deal with 3D rotations I do not differentiate between 'point' and 'vector' - that's always easy, but for 'orientation' vs. 'rotation' it really helps.
So i assume you want to calculate a single rotation that has the same effect than applying your 3 hardcoded rotations in order. And then you want to convert this single rotation to angular velocity so a physical body matches the result. Is that correct? This is what my 'some code' snippet does.
angleEulerRadians = GEAddVectors(angleEulerRadians, GEMultiplyVectorAndScalar(angularVelocityVector, globalTimeStep));
This makes no sense. If you need to convert to euler angles you need a function that does the conversation (worth its own topic), but i assume you don't need them so avoid them to do yourself a favour.
You should do this instead:
Give your final orientation to glLoatMatrix,
or give a rotation to glMultMatrix or glRotate (the latter using axis and angle, not eulers)
(assuming you work in global space and you are not inside a transform hierarchy or something)