protected function checkStatus() {
		// For running or queued tasks ensure that we have not exceeded
		// a reasonable time-elapsed to consider this job inactive
		if($this->isTimedOut()) {
			$days = round($this->MaxDuration / (24.0 * 3600.0), 1);
			$this->log("{$this->Title} took longer than {$this->MaxDuration} seconds ($days days) to be approved and has timed out");
			$this->markFailed();
			$this->sendMessage(self::ALERT_TIMEOUT);
			return false;
		}

		// If operating on a delayed notification schedule, determine if there are further groups who should be notified
		if($delay = $this->getConfigSetting('RecipientsDelay')) {
			// Check group that should have been notified by now
			$age = $this->getAge();
			$escallateGroup = intval($age / $delay);
			$recipients = $this->getConfigSetting('Recipients');
			$lastGroup = count($recipients) - 1;
			// If we can notify the next group, do so
			// We only escallate one group at a time to ensure correct order is followed
			if($this->NotifiedGroup < $lastGroup && $this->NotifiedGroup < $escallateGroup) {
				$this->NotifiedGroup++;
				$groupDescription = is_array($recipients[$this->NotifiedGroup])
					? implode(',', $recipients[$this->NotifiedGroup])
					: $recipients[$this->NotifiedGroup];
				$this->log("Escalating approval request to group {$this->NotifiedGroup}: '$groupDescription'");
				// Send to selected group
				$this->sendMessage(self::ALERT_REQUEST, $this->NotifiedGroup);
				$this->write();
				return true;
			}
		}


		// While still running report no error, waiting for resque job to eventually finish.
		// Since this could potentially fill the log with hundreds of thousands of messages,
		// if it takes a few days to get a response, don't write anything.
		return true;
	}