If you call reset_client in client_disconnect, it should be ok.
Also, note that players are not disconnected in plugin_end, but amxx considers they are and sends client_disconnect forwards before plugin_end, so in plugin_end, get_players won't collect any players, is_user_connected won't return 1 with any players.