Since you aren't using a -S or a 9210 ME daworm's idea won't work. Sorry, but your ME is bricked. I have piles of them like that. This is often caused by:
1. Defining serial port 2 on the JTAG and not shutting it off before loading it on a non-JTAG module (pre NetOS 7.x).
2. Not waiting for the program to write completely before rebooting the module (most common). After NetOSProg finishes, always wait for the reboot. It takes anywhere from 5 seconds to 15 minutes, depending on the ME's mood. (I know that sounds funny, but it is true.)
3. Assuming something is present in the file system when it isn't. I once had the program looking for a file that I had loaded manually and it locked up without it.
4. Static charge. A static shock, especially during programming, really messes up the ME's memory.
Of course the common programming mistakes are possible too. Like infinate loops.
If it is a glitch after boot, one thing you can do is set the ME to return after an error, since most errors are simple stack crashes and the like that usually don't effect long term operation. There used to be a blink code when an ME crashed, but that hasn't worked properly since NetOS 6.x.