The major problem with all these approaches, including TSLFMem is that it most are not compatible to the (unfortunately) documented exec memory administration structure, which is the simple stupid chunk based format. You'll find it in exec/memory.h, and unfortunately programs may - and some actually do - depend on this particular structure. Replacing the organization of the exec memory system is therefore a bad idea.
You can do two things, however: First, *avoid* fragmentation where it is created by replacing or updating system components that cause them, and improve the allocation strategy of your own application as well. Recycle structures, avoid malloc()/free() (AllocMem()/FreeMem()) if you can re-use the memory yourself. "Recycle, do not through away".
The prime source in the operating system (layers.library) is already gone. The next source are graphics Regions and RegionRectangles, unfortunately this is much harder to fix in a conservative backwards-compatible way.
The second thing you can do - and probably should do - is to link your own programs with their own implementation of a memory manager that only pulls big chunks from exec, and then maintains them itself. Even if these are only the stupid exec memory pools, this might already help keeping the rest of the system happy.