diff --git a/Marlin/src/MarlinCore.cpp b/Marlin/src/MarlinCore.cpp
index 8130affe30..3a6582bbb1 100644
--- a/Marlin/src/MarlinCore.cpp
+++ b/Marlin/src/MarlinCore.cpp
@@ -218,13 +218,8 @@ bool wait_for_heatup = true;
     KEEPALIVE_STATE(PAUSED_FOR_USER);
     wait_for_user = true;
     if (ms) ms += millis(); // expire time
-    while (wait_for_user && !(ms && ELAPSED(millis(), ms))) {
-      idle(
-        #if ENABLED(ADVANCED_PAUSE_FEATURE)
-          no_sleep
-        #endif
-      );
-    }
+    while (wait_for_user && !(ms && ELAPSED(millis(), ms)))
+      idle(TERN_(ADVANCED_PAUSE_FEATURE, no_sleep));
     wait_for_user = false;
   }
 
@@ -647,52 +642,54 @@ inline void manage_inactivity(const bool ignore_stepper_queue=false) {
 /**
  * Standard idle routine keeps the machine alive
  */
-void idle(
-  #if ENABLED(ADVANCED_PAUSE_FEATURE)
-    bool no_stepper_sleep/*=false*/
-  #endif
-) {
+void idle(TERN_(ADVANCED_PAUSE_FEATURE, bool no_stepper_sleep/*=false*/)) {
+  // Handle Power-Loss Recovery
   #if ENABLED(POWER_LOSS_RECOVERY) && PIN_EXISTS(POWER_LOSS)
     recovery.outage();
   #endif
 
+  // Run StallGuard endstop checks
   #if ENABLED(SPI_ENDSTOPS)
     if (endstops.tmc_spi_homing.any
-      #if ENABLED(IMPROVE_HOMING_RELIABILITY)
-        && ELAPSED(millis(), sg_guard_period)
-      #endif
-    ) {
-      for (uint8_t i = 4; i--;) // Read SGT 4 times per idle loop
+      && TERN1(IMPROVE_HOMING_RELIABILITY, ELAPSED(millis(), sg_guard_period))
+    ) LOOP_L_N(i, 4) // Read SGT 4 times per idle loop
         if (endstops.tmc_spi_homing_check()) break;
-    }
   #endif
 
+  // Max7219 heartbeat, animation, etc.
   #if ENABLED(MAX7219_DEBUG)
     max7219.idle_tasks();
   #endif
 
+  // Read Buttons and Update the LCD
   ui.update();
 
+  // Announce Host Keepalive state (if any)
   #if ENABLED(HOST_KEEPALIVE_FEATURE)
     gcode.host_keepalive();
   #endif
 
+  // Core Marlin activities
   manage_inactivity(
     #if ENABLED(ADVANCED_PAUSE_FEATURE)
       no_stepper_sleep
     #endif
   );
 
+  // Manage heaters (and Watchdog)
   thermalManager.manage_heater();
 
+  // Update the Print Job Timer state
   #if ENABLED(PRINTCOUNTER)
     print_job_timer.tick();
   #endif
 
+  // Update the Beeper queue
   #if USE_BEEPER
     buzzer.tick();
   #endif
 
+  // Run i2c Position Encoders
   #if ENABLED(I2C_POSITION_ENCODERS)
     static millis_t i2cpem_next_update_ms;
     if (planner.has_blocks_queued()) {
@@ -704,10 +701,12 @@ void idle(
     }
   #endif
 
+  // Run HAL idle tasks
   #ifdef HAL_IDLETASK
     HAL_idletask();
   #endif
 
+  // Auto-report Temperatures / SD Status
   #if HAS_AUTO_REPORTING
     if (!gcode.autoreport_paused) {
       #if ENABLED(AUTO_REPORT_TEMPERATURES)
@@ -719,14 +718,17 @@ void idle(
     }
   #endif
 
+  // Handle USB Flash Drive insert / remove
   #if ENABLED(USB_FLASH_DRIVE_SUPPORT)
     Sd2Card::idle();
   #endif
 
+  // Update the Prusa MMU2
   #if ENABLED(PRUSA_MMU2)
     mmu2.mmu_loop();
   #endif
 
+  // Handle Joystick jogging
   #if ENABLED(POLL_JOG)
     joystick.inject_jog_moves();
   #endif
diff --git a/Marlin/src/MarlinCore.h b/Marlin/src/MarlinCore.h
index e6678c5b18..3f8b72b88a 100644
--- a/Marlin/src/MarlinCore.h
+++ b/Marlin/src/MarlinCore.h
@@ -38,19 +38,9 @@
 
 void stop();
 
-void idle(
-  #if ENABLED(ADVANCED_PAUSE_FEATURE)
-    bool no_stepper_sleep=false    // Pass true to keep steppers from timing out
-  #endif
-);
-
-inline void idle_no_sleep() {
-  idle(
-    #if ENABLED(ADVANCED_PAUSE_FEATURE)
-      true
-    #endif
-  );
-}
+// Pass true to keep steppers from timing out
+void idle(TERN_(ADVANCED_PAUSE_FEATURE, bool no_stepper_sleep=false));
+inline void idle_no_sleep() { idle(TERN_(ADVANCED_PAUSE_FEATURE, true)); }
 
 #if ENABLED(EXPERIMENTAL_I2CBUS)
   #include "feature/twibus.h"
diff --git a/Marlin/src/lcd/ultralcd.h b/Marlin/src/lcd/ultralcd.h
index 1bcf9956fe..2737a1a648 100644
--- a/Marlin/src/lcd/ultralcd.h
+++ b/Marlin/src/lcd/ultralcd.h
@@ -273,7 +273,16 @@ public:
 
   // LCD implementations
   static void clear_lcd();
-  static void init_lcd();
+
+  #if HAS_SPI_LCD
+    static bool detected();
+    static void init_lcd();
+    FORCE_INLINE static void refresh() { refresh(LCDVIEW_CLEAR_CALL_REDRAW); }
+  #else
+    static inline bool detected() { return true; }
+    static inline void init_lcd() {}
+    static inline void refresh()  {}
+  #endif
 
   #if HAS_DISPLAY
 
@@ -332,12 +341,9 @@ public:
 
       static millis_t next_button_update_ms;
 
-      static bool detected();
-
       static LCDViewAction lcdDrawUpdate;
       FORCE_INLINE static bool should_draw() { return bool(lcdDrawUpdate); }
       FORCE_INLINE static void refresh(const LCDViewAction type) { lcdDrawUpdate = type; }
-      FORCE_INLINE static void refresh() { refresh(LCDVIEW_CLEAR_CALL_REDRAW); }
 
       #if ENABLED(SHOW_CUSTOM_BOOTSCREEN)
         static void draw_custom_bootscreen(const uint8_t frame=0);
@@ -403,8 +409,6 @@ public:
 
       static void status_screen();
 
-    #else
-      static void refresh() {}
     #endif
 
     static bool get_blink();
@@ -418,13 +422,12 @@ public:
   #else // No LCD
 
     // Send status to host as a notification
-    void set_status(const char* message, const bool=false);
-    void set_status_P(PGM_P message, const int8_t=0);
-    void status_printf_P(const uint8_t, PGM_P message, ...);
+    static void set_status(const char* message, const bool=false);
+    static void set_status_P(PGM_P message, const int8_t=0);
+    static void status_printf_P(const uint8_t, PGM_P message, ...);
 
     static inline void init() {}
     static inline void update() {}
-    static inline void refresh() {}
     static inline void return_to_status() {}
     static inline void set_alert_status_P(PGM_P const) {}
     static inline void reset_status(const bool=false) {}