server: annotate async pipe tasks so we know who exits when & why

* also, the network server will wait for both tasks it contains to
  exit, rather than just one. (Don't know if this was the cause of
  previous issues but at least we'll have more info as we try to
  reproduce).