Fix two bugs in SendVarReadFirstLinger

- If we hit the timeout in the loop, the remainingKeys was being overpopulated
  with empty strings.

- If we got all responses on the first SendOne broadcast, len(remainingKeys)
  was == 0 so we wouldn't making the early return, but we launched the linger
  goroutine without ever having launched the sends it was supposed to linger
  for! In this case, trigger another early return, and make sufficient wg.Done
  calls to terminate the initial goroutine responsible for closing the
  elements channel.