It appears that at least gcc 14.2.1 does not call the class's ~InterruptLock() destructor and hence interrupts don't get re-enabled. I rely on interrupts for other functionality and they stop forever once a DHT read is triggered.
Either keeping interrupts on (my ISR is very short) or disabling (1x) & re-enabling (3x !!) interrupts in the read() function both work as expected.
This might also be the casue of #211.