Fix ranges and decode alive values defensively
Alive and broadcast messages were interfering because prefixes were wrong. To get only the keys starting with "msg", we need to use a range end "msh" as 'h' is 'g'+1.