This PR adds functional test coverage for the MAX_ADDNODE_CONNECTIONS part of #28635.
The issue also discusses a separate double-addnode / ThreadOpenAddedConnections timing problem. This PR does not try to cover that case. I kept this test focused on the connection limit because it can be checked through RPC behavior without mocking the networking thread timing.
The test starts node0 and 9 reachable target nodes. node0 adds all 9 targets with addnode "add". It then checks that getaddednodeinfo() records 9 added nodes, while getpeerinfo() shows no more than 8 manual outbound connections. It also checks the count over a short stability window.
So the behavior covered here is: Bitcoin Core may remember more than 8 added nodes, but active addnode/manual outbound connections are capped by MAX_ADDNODE_CONNECTIONS.
Tested locally:
python3 -m py_compile test/functional/rpc_addnode_limits.pytest/functional/rpc_addnode_limits.py --configfile=build-clang/test/config.initest/functional/rpc_net.py --configfile=build-clang/test/config.inigit diff --check