No, that's not true.
Use a while loop if you want to "break out."
You don't have to worry about one chart blocking other charts from running. The processor time is shared equally between each of your charts (and the "host task") in turn.
However, if you have a lot of charts running, that means they each have a smaller slice of the pie, and that's why it's a good idea to add an appropriate delay in any looping logic (using the "DelaySec" or "DelayMsec" Timing command), BECAUSE any charts in a "delay" give up their slice until that delay is over.
Are you looping to check the temperature? No need to do that every 1 ms, maybe every 10 seconds or so. Even better, use a variable for these (like "long_delay" or "medium_delay" or "short_delay"). That way, if you're troubleshooting logic and don't want to wait for that whole "long_delay" value, you can temporarily modify it during your debugging.
More info on time-slicing, etc. in doc 1779, our PAC Project System Performance tech note.
I hope that helps! Happy looping.