OK during further testing today, including bypassing the arduino completely and just using hardware to get the signal from the LED to a trigger signal for the camera I have found out that it is not an arduino problem, but a problem with the camera. It is behaving irratically even though the trigger signal is always constant. So as for as the arduino site is concerned, the program is solved. I have moved the delay to another function that the interrupt routine calls, even though it doesn't really make a difference.