atmega timer strange behavior
The problem is with this part of the code:

while (1) {
    if (timers_millis() % 1000 == 0) {
        leds_on(LEDS_REGISTER_PORT, LEDS_PORT_RIGHT);
    } else {
        leds_off(LEDS_REGISTER_PORT, LEDS_PORT_RIGHT);
    }
}


timers_millis() % 1000 is only 0 for multiples of 1000. You turn the leds on for just one millisecond before turning them off again. What you would want is to take the millisecond counter modulo your desired period and then check whether the remainder is in the first half or the second half. For a period of 2 seconds, you'd need to check whether the remainder is in the first or second second:

if (timers_millis() % 2000 &lt; 1000) // 0000..0999 ms
    // turn on
else                               // 1000..1999 ms
    // turn off