I wonder if your sketch will suffer from the millis overflow problem when running for more than 9.5 hours. Time calculation using millis give incorrect values when millis reaches 34,359,739ms, but there are a number of solutions to this that you can find in this forum.
One solution that minimizes changes to your code is to reset the count before it overflows. In your application you could reset the value every time you fire the shutter.
Here is reset code:
extern volatile unsigned long timer0_overflow_count;
timer0_overflow_count = 0;