I know that with Unity's networking system, you will have to pay Unity if you have more than X players on your servers at the same time. I believe this is because that Unity is hosting the servers, and it costs them internet service? But if the players are hosting their own servers, this wouldn't cost Unity any internet. Is it possible to host your own servers using Unity networking, and if so, will it still cost extra money? thanks. :)
You have answered your own question.
Unity charges you for two things:
Licensing their engine, proportional to your number of seats (employees in your organization using the software simultaneously), once your revenue exceeds a particular threshold.
Use of Unity's online services, proportional to your consumption of those services.
If you are not consuming their online services, then point 2 doesn't apply, and the only payment you owe them is the licensing of the engine, if your revenue is enough to exceed the Personal tier.
You can write whatever network code you want in order to synchronize your game clients without using a Unity-hosted server as an intermediary.
In fact, you could use unity as a client programming. Meaning totally as a game client distribute to players.
Elsewhere the game clients connect to any kind of game server written with other platform and other programming language. For example a game server written in .net offering Rest API interface. Or maybe a nodejs server offering socket.io / websocket . You're free to pick surely there are advantages and disadvantages.
It may cost a lot lesser than using what's provided by unity. E.g. those game server could be hosted on AWS, Heroku, etc.