Thanks deium and cMata_Intel for the link. I just tried the referenced Arduino sketch for the HC-SR04 and found something interesting. It runs great on an Arduino UNO and reports distances just as I would expect on out to at least 80cm.
So then I moved the HC-SR04 back over to my Edison-Arduino and uploaded the same sketch using the modified Arduino IDE. It runs but gives results similar to what I experienced with my Python program in my above original post. It seems to work at very close distances but keeps reporting the same distance out past say 5cm.
So, the HC-SR04 doesn't work correctly on my Edison-Arduino with an Arduino sketch using simple timing loops or with a Python program using the mraa-upm library.
My next step is going to be getting out my old scope and measuring the trig pulse width. Its supposed to be 10usec. I suspect Edison-Arduino timing may be causing 'delayMicroseconds(10)' in the Arduino sketch to be too short or too long. Same with the Python 'time.sleep(0.00001)' which should also be 10usec.
The HC-SR04 requires a 10usec pulse on its trig pin to initiate a sonic burst. So far I haven't found a datasheet that gives a tolerance for the 10usec.
Stay tuned...