Checking for incoming OTA-update

My device by default stays online far too short (about 5 seconds, just sufficient to publish data) to download any OTA-updates. So instead, every Friday I want it to check if there’s a pending OTA update (through a Product). I don’t want it to always wait for a full 30 seconds (which seems to be the time it takes for my devices to download OTA updates) because this halts code, increases the energy usage and I may not even have new firmware every Friday. So instead, I let it wait for 5 seconds, sufficient for the OTA-update to kick in if there is any, and then I want to detect if the device is downloading any updates.

If there’s an update, it will stay awake for 30 seconds total. If not, I will only lose 5 seconds on my battery power once a week, which isn’t a big deal. However, I tried several things and nothing seems to work; with my code below, the device will start the OTA-update but will return false for System.updatePending, thus never waits the full 30 seconds.

    if (Time.weekday() == 6) {
        Serial.println("checking for firmware update");
        delay(5000);
        if (System.updatesPending() == true) {
            Serial.println("downloading update...");
            delay(25000);
            state = SLEEP;
            break;
            }
        else {
            Serial.println("no updates found");
            state = SLEEP;
            }
        }
    else {
        state = SLEEP;
        break;
        }
    }

To be fair, the reference documentation does mention System.updatesPending is basically useless. Is there any other way to not interrupt my Electron if it’s in the middle of downloading an update? Any statements that may return true/false based on whether it’s busy with this download?

void setup() {
  System.on(firmware_update_pending, otaHandler);
}

void otaHandler () {
	//do stuff here
}