Вас не смущает вот это:
If the INTE bit is set to 1, then the INTS status bit is asserted if the light intensity exceeds either upper or lower threshold
limits (as specified by registers 0x05 and 0x06, respectively)
for a period longer than that defined by the Threshold
Timer register (0x07). This bit resets to 0 after the host reads this register.
При том, что в Вашем коде:
i2c_write(MAX44009_THRESH_TIMER_REG,
0x00); // Set ADDR: 0x07, VAL: [b7]...[b0] = 0000 0000, after RESET
И при том, что в даташите:
POWER-ON RESET STATE для регистра Threshold Timer = 0xFF
И далее:
The value in this register sets the time used to control this delay.
A value of 0x00 in this register (with INTE bit = 1 in the
Interrupt Enable register) configures the IC to assert the interrupt pin as soon as the light level exceeds either threshold.
Time delay = (128xT7 + 64xT6 + 32xT5 + 16xT4 + 8xT3 + 4xT2 + 2xT1 + T0) x 100ms.
По-моему, чип всё делает в соответствии с документацией