NewPing Library: HC-SR04, SRF05, SRF06, DYP-ME007, Parallax PING))) - v1.7

The problem with using Timer2 is that it's only 8 bit so you can't do a long timeout event.

You could add a counter in the timer2 ISR that will check only every 10 overflows (sort of cascading)

volatile byte counter = myPreferedValue;
void ISR()
{
  if (counter-- == 0)
  {
    do your check
    counter = myPreferedValue;
  }
}

does that make sense?