I want to be able to listen to the 4 ports simultaneously
Not with an Arduino, you can't. You need something with 5 hardware serial ports.
I expect the overall data rate of the 4 combined ports to be around 3500bps, so there is absolutely no bottleneck issue.
You appear to think that no two devices will try to talk to the Arduino at one time. That is not a realistic expectation.
Has anyone changed the SoftwareSerial class to allow this?
It can't be done. SoftwareSerial relies on pin change interrupts. Only one pin at a time can be generating the interrupt that SoftwareSerial cares about.
I've poked around and it seems I can do it by just ignoring the "active_object" concept.
But, you can't. If some device that is not the active object talks to the Arduino, it will be ignored.
You could switch the active object often, or you could make the objects that you are listening to respond only when asked for data.
Changing the active object often does not guarantee that you will be listening to a device when it starts talking.
Changing the objects that you are listening to may not be possible.
If that is the case, you need different hardware.