Everything you read in this thread will be out of date by the time you come up for promotion. The AF promotion timelines have been shifting earlier and earlier over the last few years.
I was passed over for O-5 at the 16 year point. I took the bonus a few years ago thinking I had a shot at O-5, but not really having a choice (I'll come back to that later). The bonus paid $25,000 a year if I signed a contract commiting me to stay in to 20. Once you've made O-4, as a pilot, you'll be continued to 20. But as I said before, that could change within even just a few years. During the McPeak years, pilots that were passed over were given involuntary early retirement, and there was no bonus paid to remain to 20.
So why did I stay in? Simply due to timing. I took my first bonus at the 7 yr point, which committed me to 14 yrs. If I hadn't taken it, I'd've been grounded for the last 2 years of my time left in - I still had 2 years of commitment remaining before I could get out. So I couldn't reasonably turn it down. That kept me in to 14. Then they offered another bonus to remain in to 20.
Why did I take that one? Remember, every time you attend a training class, upgrade or PCS (move), you incur a commitment. Many people try to time their commitments out so they keep their options open at the end of each assignment. Unfortunately, my timing sucked, and I kept getting moved from bases being closed and qualing in new airframes before my previous commitment was up, so I incurred more commitment. When they offered this last bonus, I again had so much commitment remaining that to not take it would have been unreasonable.
I don't regret not making O-5. I get to fly for a living again, versus my peers who are sitting behind desks getting ulcers and not flying. I probably would have gotten out had my timing been different. Be careful with your timing, stay aware of your commitments, and don't let them run your career. As first third said, "don't put the cart before the horse." Besides, as I said at the beginning, all this will be out of date before too long.