Improve watcher comments and variable names
Don't request transactions we already have

The check was happening too soon, so the transaction might have already
arrived while the request was sitting in the queue. Perform the check as
late as possible to avoid this.
Search for transactions in the memory pool too