interrupt starts at different times depending on upload time of program

If you look at the code, the camera output pin is set to HIGH at the beginning at the interrupt routine, which triggers the camera shutter immediately. It then needs to stay open for a certain amount of time, which has to always be the same.
Only after the camera output is set to HIGH do I have the delay, after this the camera output is set to LOW. The camera shutter stays open for the length of the pulse it receives and this pulse width needs to always be the same. That is what my delay is for.