Use conditional intervals in heartbeat_callback
In ticket:19454#comment:4 i suggested some rationale about the (now removed) comment in the heartbeat callback function.
The attached patch uses the return value of log_heartbeat
to choose between calling the callback after HeartbeatPeriod
number of seconds or on the next second.