Apparently working async server tests
Fix use of gen.timeout and on_client_disconnect_was_called()

gen.timeout expects and absolute time deadline, and we were passing it a
relative timeout

on_client_disconnect_called() should be called earlier, since the yields in
_disconnect_client() can result in it being called again before we call
on_client_disconnect_called(), resulting in device.on_client_disconnect() being
called multiple times.