{until condition} is {while} with the test turned
round: it renders its content for as long as the condition is false, and stops as soon as it
is true. {until $count eq 0} reads as the sentence it is - often clearer than the
equivalent {while $count ne 0}.
Everything else is shared with {while}, which is the same handler: the
condition is evaluated anew before every pass, written on the closing tag
({until} ... {/until condition}) it is tested after each pass so the content renders
at least once, and {break}, {cease} and
{continue} work inside it.
The loop is stopped after 10000 passes when its condition never becomes true - an error under the strict syntax check - and a missing condition or closing tag is an error too.