The delayMicroseconds() times is immaterial when you consider how long it takes for the pulse that is generated to travel out and back, which you sit and wait for.
Use the NewPing library, which uses interrupts, not pulseIn(), to determine how long the pulse took to travel out and back.