Glitch vs runt pulse due to hysteresis
I think you have the definitions slightly wrong.

A glitch is a very short pulse.
If it's at the start or end of a pulse the cause is normally a combination of a noisy input transition (either due to noise or poor termination) and a lack of hysteresis.
It it's in the middle of a pulse then the cause is normally either a lot of noise on the input, the transition threshold being poorly set or poorly designed asynchronous logic.

A glitch is typically driven to one rail or the other however due to the length of the pulse and the edge rate of the signal it may not get all the way there before starting to return to the correct state.

A runt on the other hand is a signal which has reached a stable state at an invalid level, it can last for a full clock period or more. Runt pulses are normally caused by a conflict, two different sources trying to drive the same wire to different states. They can also be caused by insufficient drive capability on an output.