For real high speed event timing it's best to utilize external digital logic chips to build a high speed counter that could be clocked at say 50Mhz and have one photosensor start the counter and the second one stop the counter and then have the Arduino read the count value and reset the external counter for the next timing event. It would take just a couple of chips and a crystal oscillator to create such a critter.
The laser was the easiest way for me to experiment with the pulsein() I was reading about. I will look at building external logic on breadboard and using my UNO to control/reset the chips as you said. Endless fun with parts ;-)
The ATmega has built-in counters and timers... Perhaps use the light sensors to trigger interrupts. On the first one, reset a timer. On the second, save the timer value.
This was what I was trying to do in the first place. But not using interrupts. In the laser example the actual first attempt had the two sensing diodes 4 INCHES apart and I was only 30 FEET from the laser (backyard) and trying to use millis() to compare the two events .. even with micros() none of the readings I got made any sense .. like I said .. there is some geometry I am forgetting about radians arc seconds etc that I didn't factor in .. but it was just an experiment to compare two sensed beams without actually haveing two transmitters aimed perfectly at two diodes. I think what I built would have worked for something as slow as a race car passing two transmitters at 400mph and breaking the beams to my breadboard. The rest was a quest for further understanding.