Oh, good point -- this version is wrong. The TimeoutMS is what matters. The heartbeat shouldn't even be configurable IMO -- we can just divide timeout by 4 or something.