These are just optimization suggestions. We have a problem and I try to brainstorm the solution. Then you start digging something sooner or later you will get some results.
I think the most perspective is replacing base64 with the zip archive. It is relatively easy to implement (a small number of modules affected). This will simplify code (we could always zip, because it's easy to unpack, so no need to maintain 2 savegame versions).
But these are only my thoughts, based on a lack of knowledge on how C++ code should be optimized.