interrupt starts at different times depending on upload time of program

I think it is time to drag out the scope. Also, unless the arduino is doing something else, I think straight hardware would be the best way to get low latency.