Fix critical lwt DNS resolver timeout bug
Fix critical lwt DNS resolver timeout bug

Invalid_argument Lwt.wakeup_result was being raised due to multiple wakenings
of the same waiter. This was due to a mistake in the understanding of the
scheduling of the results of Lwt.pick with Lwt scheduling side effects that
occur within the pick branches. Now, the waiter is only awoken from the final
result of the pick including branch cancellation.

samoht/ocaml-dns