Allright. Well, this is the only shot I'm gonna give this, since I don't understand too much C++ at all.
if(rotation_rate_delta_time_left || rotation_rate_decel_time_til > 0.0f)
If I'm reading this right, you want to adjust the velocity only if it's in the acceleration or deceleration stages. So, if rotation_delta_time_left > 0 you're still in acceleration. But, rotation_rate_decel_time_til sounds like it's the amount of time til you begin deceleration. From the check though, it's doing it if there is still time before you should start deceleration, and if you're in the deceleration phrase, you'd want there not to be time left until deceleration. Maybe this should be
if(rotation_rate_delta_time_left || (rotation_rate_decel_time_til < 0.0f))
So you've got , if there is still acceleration time left, or the time till deceleration is negative, do the acceleration.
And if I've just wasted a bunch of time, apoligies. My first C++ course was tonight, heh.