if !state.blocked_advance.is_empty() && state.allowed_advance == Duration::from_nanos(0) {
// or the reasons to return false below also imply that the advance flag will be set again
if !state.blocked_advance.is_empty() && state.allowed_advance > Duration::from_nanos(0) {