One idea to keep in mind is that while the CPU can normally read from one location, It could easily write to many locations at the same time.
My old Z80 computer had it's video ram mapped to the same address as normal ram. Some call this shadow ram. On reads of video ram the Z80 was reading normal ram. On writes to video ram, the CPU had to wait to sync up to what the video controller was doing so not to glitch the display, and would write to both video ram and normal ram at the same time.
It also had two banks of 64K ram. It could divide ram in to banks. One address range could be common between banks so a write to this address range was a write to both banks at the same time. Simple thing that makes using more than 64k easer.
This system only had a 512 byte boot rom yet it could boot scsi hard drives or from floppies. It could have 8 floppy drives attached. Single sided, double sided, single density, double density, 5 1/4 or 8". A dip switch set which drive, the rest was in that 512 byte boot rom. So you really don't need much boot code to get started.
The PDP-11's I worked with back them had no boot roms. They were suppose to run 24/7/365 and also had magnetic core memory that should retain it data during power off. So while adding the boot rom option would have been a costly nice idea, you could enter a 32 word program in from the front panel and get it started again if all else fails.
For example some of the old turbodos slave CPU cards had no boot rom or eprom. On reset the CPU was stopped. The reset caused the master Z80 to load the boot code into the slave CPU and then release the reset line. The master Z80 used the slave's DMA signals to do this. A simple but powerful idea. Some slave cards had no IO and relied on the master Z80 for IO and off card needs. This also allowed fancy slaves that could take some of the load off the slaves and the master.
An Intel development system I used back then had a reset button and a boot button. The boot button cased a processor reset and enabled a eprom for read only access. Stage one was to read from rom and write to the same address.
So boot program can be small if you can get more from some place.
In case I missed it, what else have you got to get the Z80 running.
Have you thought of having a Arduino or STM32 discover or something else like this load your boot code in ram? After boot this something could be some or all the Z80's IO you could need.
No battery backed ram would then be needed. Just a little harder to get started, but could be a great time & cost saver later.
C