pub(crate) fn is_heartbeat_late(
last_heartbeat_at: Option<DateTime<Utc>>,
expected_interval_secs: i32,
paused_at: Option<DateTime<Utc>>,
now: DateTime<Utc>,
) -> boolExpand description
A phase counts as late once more than PHASE_HEARTBEAT_INTERVAL_MULTIPLIER of its own
interval has passed since its last heartbeat. A paused phase is never late: it is not expected
to be heartbeating at all.