The reason for all this complication is that I've had to condense two machines, hamradio and amprgw, into one because hamradio is going away.
The reason for using 'mailman' as the hostname in the mailing list headers is that we may someday move the mailing lists to their own machine with that name (and it's own IP address!)
It should not be that difficult to run a mailservice on the same machine but with a different address and name. I.e. add 44.0.0.2 to the machine, move mailman.ampr.org there, and run all SMTP services on that address and corresponding name. Then the move to the new machine is transparent.
But otherwise, it is a good idea to use virtualization as much as possible. This can be classical hardware virtualization like we use (VMware ESXi) but there are also leaner methods. That way, you can keep the different tasks on separate virtual machines, on separate addresses with their corresponding hostname, and there is also a lot less impact when one time you want to update the OS or switch to another OS.
(e.g. you could run the mailman on Linux and the gw on BSD, and maybe experiment with a new gw running on Linux, all on the same hardware)
Rob