It's not really that crazy, actually - New Year's Eve is an exception, and restaurants know they have limited tables available, so they jack up the prices accordingly. That said, there are some tricks. First off, don't just stick to the usual fancy places downtown: restaurants that are a bit less well-known often have decent menus at lower prices, maybe 50 - 60 euros instead of 100. It's worth checking reviews and local Instagram accounts, not just the super famous ones. Another thing is to look for alternatives: some ethnic places (Thai, Japanese, Czech) charge less, or you can check out areas that are a bit more on the outskirts, which keep more reasonable prices even on New Year's Eve.
As for timing, it's smart to book, yeah, but more so you have options than because you'll miss out. If you wait too long, the good spots fill up and you're left with the pricier ones. I'd say start looking now (end of September), so you get the full picture and aren't forced to take whatever's left. Maybe before you book, read some recent reviews and call directly to figure out what's included in the menu - sometimes the sparkling wine is extra, coffee costs more, that kind of stuff that inflates the bill. Trust word of mouth more than booking sites; those sites often have prices already "prettied up."