There are lots of reasons including the one you mentioned for not making O-5: R-I-F, job offer too good to refuse, health, bad OPR's, politics (e.g. no promote recommendation from the commander), lack of education (PME or civilian), etc.
The dirty little secret on the left is that despite saying that they "support the troops but"...is that they really don't.
Like Rush says, "What is good for Liberals is bad for the rest of us." God bless you for serving. Maj. Buzzsaw