You don't need NVRAM - Just a NVRAM ramdisk. CP/M is a DISK operating system afterall
And you don't need much for a quick boot - I and going to write my boot into a ROM and so far I used 4K for a bootstrap and to load the BIOS and BDOS (FDOS) and the FDOS loads CCP.BIN which is another 4K to memory and starts executing it on a hard reset or a soft reset.
If you add a ROM into your design for the RAM disk and hook it into your BIOS, then you can do much the same, and CP/M boots instantly. Or near enough, even by modern standards.
Also, since that leaves me about 54K of free "ROM" memory, I can put other boot utilities in there, and I've already modified my CCP to go looking to the "L:" drive as a path default if it can't find an executable on the logged disk.
As long as you can boot from a NVRAMDISK, then it's no worse than booting straight to code, and avoids having to maintain state information for the CPU.
Regards
David
edit: The "54K" of extra "ROM" memory is because I am using a 27512... Hence my Romdisk has about 62K, with two directory blocks, and all blocks 1K. So I only use 8K of it's capacity for the FDOS and CCP presently. But 8K should be more than enough to boot a CP/M system. Including bootstrap.