Protect keepalive from loops

erlang:send_after must be protected with forcing cancel_timer to avoid loops

Code with this protection can start many waves of timers. For example, if I send 10 times keepalive message to client that doesn't have protection, there will be started 10 timers!