well you don't actually have to allocate memory to keep it blocked do you? you can just have a page that isn't present and isn't actually backed by physical memory
With a much smaller size, say, 128 bytes, almost every new allocation could be put into a new page at a new address, with one or more guard pages behind it.
Yes, it would increase the size of the page tables, and the lookup time, but maybe it's worth it.