Why do I have more unconfirmed tx than getmempool info reports?
You are misunderstanding how listunspent and getmempoolinfo works. listunspent is for your wallet only and is a wallet only RPC command. It will only show things that pertain to your wallet. However getmempoolinfo is a node RPC. It will show what your node sees, which is almost always going to be more than just the things in your wallet. These two commands are completely unrelated and work independent of each other. There is no relation between these two commands.