Add heartbeat timeout event

Instead of throwing an exception on heartbeat timeout, invoke an appropriate method on the status listener.