The limit is hard limit, yeah.
A million is quite a lot so you might gain some mileage by simply reducing the cost of everything by a factor of 10 or 100.
Another solution I've seen in some maps with ridiculous exponential scaling is using lumber as additional digits (with every 100000 gold being converted to 1 lumber, and vice versa). This works nicely with bounty, shop prices, etc, since lumber can be used in all of those. Not applicable if you're using lumber for anything else though.