I don't think you need a 64 bit address space for this unless you have more than than 2 GiB of memory.
Yes, but then you need to try to shrink the slots per app as much as possible. Plus, keeping this all in tiny 32bit address space means, there would be no chance for features like automatic stack expansion.
On the contrary, doing the same on 64bit target means you have 131072 2GB slots (in case of 48 bit virtual address space) which you can assign to tasks/processes. Having plenty of address space means also, you can just waste MMU pages for stack expansion and other goodies.