Add ControlFlow data type and a field for that in WMState to cleanly exit the
main loop without exception handling