Take out both REMs, and you probably won't have any more problems, for a while. REM DLLBASING=OFF causes shared memory to allocate on memory boundaries, which causes a lot of fragmentation. You may have 150 M left, but if the biggest chunk is 20 K, you have a major problem.
Older systems would be slowed by using DLLBASING=OFF, but any system after the 486SX won't have any problems with it.
Recently, I have abandoned using 128 M for JFS cache too (no setting, which means 64 M), but the jury is still out on that one. I am inclined to think that it is okay at 128 M (at least it doesn't use lower shared memory, like HPFS does).
Plenty of free shared memory (as reported by the 'Free Shared Mem' utility) over 150Meg.
Don't be fooled by that. I have seen lower shared memory drop from 180 M to about 5K, in seconds (another 6K, and the system would probably crash, or hang). The biggest "problem", that I have now, is trying to run VBox under OS/2, It uses huge amounts of lower shared memory, and I need to watch what I try to run at the same time.
Today, I also discovered that doing an update, with ANPM (RPM/YUM), can cause DLLs to lose their settings to load high. This can happen with DLLs that are used by Apache OpenOffice, and with Firefox (probably more). It is probably a good idea to use the HIGHMEM utility to redo those settings after each update. I use the AOO quick load, to keep those in memory, and set them to load both data and code, high. Firefox is probably better with only code loaded high, and use MOZTURBO to keep them loaded. Keeping the DLLs loaded helps to prevent shared memory fragmentation (as well as crashes, when they try to unload), which can cause problems, even when the system says it has lots of shared memory available.