Arduino Uno Input Capture!!!

Agree... waaaay too complicated.

...poll the input until you see the first event, record the start time, poll the input until you see the second time, record the end time. Subtract start from end to get the elapsed time...

This works just fine. Each millis() returns a long int with the current number of milliseconds since the board was powered. When you subtract two event times, the answer is the time difference in milliseconds.