From what I see, mobs will unspawn after a couple of hours max, though sometimes their unspawning timers seem to extend/reset if they go into aggro or take damage. However, I had mobs unspawn sometimes in the middle of combat too (shadow elemental pet training), so maybe it's the damage thing.
This timer starts once they have been spawned, so the ophidians might have spawned 2 hours ago and has only a couple of minutes before they unspawn when you came along.
Once unspawned/killed, a new mob will respawn back at it's respawn point when this happens (but it will not have any stuff it looted).
Would be nice if the devs could code in something to turn them into corpses that decay normally (so that it's helpful during champ spawns too) when they unspawn, get guardwhacked, got sacrificed as long as it has looted something. Corpses will of course contain only the looted stuff if they were not killed by players.
I added the sacrifice issue because once I sacrificed a lich that I forgot had killed and looted me. Lost me a bag of nice weapons.