Great analysis of the source-code. But in my case (Printrbot Simple Metal) I set the heat-bed to 50 °C and extruder to 210 °C, so I'm not hitting a temperature limit, as my heat-bed can go to 90 °C and my extruder can also go higher than 210 °C. So there must be some other problem?
It has nothing to do with physical temperature limits. It is because the bed temperature is not being driven OVER the desired setpoint, likely due to its slow moving thermal mass and poor PID tuning. And unfortunately, the way the firmware is coded, this means the FIRMWARE will never exit the preheat loop. So that's exactly why it's getting stuck.
Google how PID temperature controllers work if you want to learn more about why it's likely happening. Increasing the P and I constants would likely fix it (or updating the firmware to be a bit smarter about knowing when the temperature is "close enough" even though it never hits the setpoint).
The only way it doesn't apply to your Printrbot is if you can show that your bed and extruder temperatures both clearly EXCEED the setpoint that you enter. If it stays right below the setpoint (even by 0.01 degrees), then it will be affected by the firmware issue.