diff --git a/src/slurmd/slurmd/req.c b/src/slurmd/slurmd/req.c
index dbbb2b57127e6254506850a3023c364e8f744b03..64474e044fc86bc58484040ebdc007df59507bfb 100644
--- a/src/slurmd/slurmd/req.c
+++ b/src/slurmd/slurmd/req.c
@@ -3610,9 +3610,10 @@ static bool
 _pause_for_job_completion (uint32_t job_id, char *nodes, int max_time)
 {
 	int sec = 0;
+	int pause = 1;
 	bool rc = false;
 
-	while ((sec++ < max_time) || (max_time == 0)) {
+	while ((sec < max_time) || (max_time == 0)) {
 		rc = (_job_still_running (job_id) ||
 			xcpu_signal(0, nodes));
 		if (!rc)
@@ -3621,12 +3622,15 @@ _pause_for_job_completion (uint32_t job_id, char *nodes, int max_time)
 			xcpu_signal(SIGKILL, nodes);
 			_terminate_all_steps(job_id, true);
 		}
-		if (sec < 10)
-			sleep(1);
-		else {
-			/* Reduce logging about unkillable tasks */
-			sleep(60);
+		if (sec > 10) {
+			/* Reduce logging frequency about unkillable tasks */
+			if (max_time)
+				pause = MIN((max_time - sec), 10);
+			else
+				pause = 10;
 		}
+		sleep(pause);
+		sec += pause;
 	}
 
 	/*