Code:
void counter_loop() {
    static thread_local uint32_t counter = 0;
    thread_local uint64_t vorher1, nachher1;
    while(true) {
        Serial.print("counter_loop: ");
        Serial.println(counter);
        vorher1 = millis();
        std::this_thread::sleep_for(one_sec);
        nachher1 = millis();
        println("Sleep1:");
        println(vorher1);
        println(nachher1);
        println(millis());
    }
}

void blinker_loop() {
    static thread_local uint32_t counter = 0;
    thread_local uint64_t vorher2, nachher2, vorher3, nachher3;
    while(true) {
        digitalWrite(LED_BUILTIN, HIGH);
        Serial.print("blinker_loop (HIGH) counter: ");
        Serial.println(counter);
        vorher2 = millis();
        std::this_thread::sleep_for(one_sec);
        nachher2 = millis();
        println("Sleep2:");
        println(vorher2);
        println(nachher2);
        println(millis());
        
        digitalWrite(LED_BUILTIN, LOW);
        Serial.print("blinker_loop (LOW) counter: ");
        Serial.println(counter);
        vorher3 = millis();
        std::this_thread::sleep_for(one_sec);
        nachher3 = millis();
        println("Sleep3:");
        println(vorher3);
        println(nachher3);
        println(millis());
    }
}
ich habe mal noch explizit die Variablen getrennt um irgendwelche Phänomene auszuschließen