I would not recommend using CHR-RAM as a substitute for PRG-RAM. The narrow timing window for access requires a very advanced NES programming technique to use effectively.
8k of PRG-RAM at $6000 is supported by a lot of common mappers, and fairly simple to build as a discrete mapper, if you're concerned about building the carts. In a case like this where it will make it much easier for you to port, I think it is a good option to consider. (PRG-RAM
could be added to AxROM or UxROM, though I am unsure which emulators would currently support it.)
A different question might be why you need it. For 4-way scrolling on an NES, having random access to the whole room does simplify things a lot. However, is your room static or dynamic? If they're static, are you using RAM because the rooms are compressed? If they were uncompressed, could you get away with read-only access? A mapper like UxROM might give you the space you need to page in uncompressed rooms.
There are a couple of methods to do 2 splits without a mapper IRQ. Here's two options (one of which was already mentioned):
1. Design your NMI carefully with timed code to do the status bar split at the top, and then use your sprite 0 hit to do a second split at the bottom.
2. If you do not need DPCM sounds, you can use a sprite-0 hit for the status bar, and
a blank DPCM sound to trigger a timed IRQ for the second split.
As far as 4-way scrolling implementations go, you might take a look at how Super Mario 3 does it (check out its nametables in a debugging emulator like FCEUX). Since your maps are less than 2 screens high, you can get away with a static vertical position in the nametable and just stream in new vertical strips at the horizontal scroll point. As stated, there is a hard to avoid attribute glitch on the right hand side, but this was considered acceptable for SMB3, at least.
Shrinking your rooms to 256 pixels wide might also be a consideration, but that might be a more invasive change than you would like. If all your rooms were <= 512 x 480 you could fit them statically onto 4 nametables with a mapper that has extra nametable RAM (e.g. Gauntlet), which would make 4-way scrolling almost trivial to implement. (Actually you would only need to shrink the 640 wide rooms for this method.)