If you set -maxconnections=20 your node is connected to 12 incoming connections and 8 outgoing connections. The maxconnections has nothing to do with outgoing connections and it just controls how many other nodes connect to you. If you leave the -maxconnections undefined your node will allow atmost 117 other nodes to connect to you by default. That's the default limit specified in the code as TheWolf666 mentioned above. And in order for you to get the 117 incoming it takes time for other nodes to connect to you.
For most of the time, the -maxconnections will probably drop to 845 connections or similar if we are specifying -maxconnections=1000 based on your file descriptors. We can change the configuration and make the node to connect to more than 845 too but that would be too bad for the PC and I recommend not trying that out.
See this
Using at most 125 automatic connections (1024 file descriptors available)
If 1 (either bitcoin.conf or -maxconnections=1, it shows this:
Using at most 1 automatic connections (1024 file descriptors available)
Using "2000" like the OP wanted, it shows this:
Using at most 865 automatic connections (1024 file descriptors available)