relocate is_explicit_restart macro
drop function guards from restart_if_explicit_or_abnormal
simplify restart_if_explicit_or_abnormal
rationalise restart handling