Idea: Single use virtual memory.
Don't bother ever reusing the same virtual memory space, you always allocate in a new place, and once you free it is gone.
If you have a true 64 bit virtual memory space then this is surprisingly practical. There is no remotely realistic scenario where you are ever going to run out.
Upsides include a dead simple allocator, and a guarantee that use-after-free will result in a hardware exception. What is not to like?