What if you only paid mercenaries when they were fighting and to make it more realistic, they could carry all the metal they are paid with them. When they are idle, they could go to a market and trade resources for the metal they have been given. This way you get the metal returned to you when they trade things with their metal like a realistic economy. This would make it less common for you to run out of metal but you would still loose some metal. When they cannot be paid, they will just go to the nearest market and trade their metal until they can be hired.
Another idea I had was to instead of paying a set price for mercenaries, you set a price that you will pay each mercenary and how many you will hire. That way, you could raise or lower the prices so enemies would loose or not be able to hire any and the prices that mercs will accept would change based on demand for them and all the options they have to each player.