For my own purposes I have created some patches which apply to the current mailman pip package.
The first of them is for my purposes necessary, and has been discussed here before: being able to specify the address used to listen for tcp connections independently of the address the server considers it to be accessible at. A possible change to this patch would be to check whether this address was undefined but the old hostname was defined, and use that if so. For me this is not needed, and in any case it is a trivial change to make.
The second patch adds a bunch of additional logging calls to various network-related parts of the package. I wrote these into the package because I was seeking the cause of template expansion causing messages to be silently dropped. I eventually found the cause was that I had an incorrect setting of the template root URL, but I regard the lack of anything in the logs as just as much of a bug. One important part of those changes was that I added a try/catch around two parts of the 'decorate' code, which is where the silent dropping occurred. If you only take one part of this patch, I encourage you to take this part.
For the third patch, I discovered that the task runner was at one point busy-waiting to the tune of 100% cpu, and the cause was the way that the runner checked to see if there was work left in the queue. I am not quite sure what was the exact problem, but I think it was that there was something to do, but it was not achievable at that time, and the result was continual retry. The third patch changes the logic slightly so that this no longer occurs - retry will happen, but somewhat more gracefully.
I hope you find some use in these three.
Finally, I am currently experiencing problems with templates and would appreciate any thoughts:
If I do not set up 'individual' or 'full' personalisation, all is well and the default footer templates are expanded as expected. However setting up personalisation causes template expansion to fail completely, and messages get sent with a blank expansion.
I would find the postorius UI much easier to cope with if the default template was 'populated' into the UI wherever it was non-blank, rather than the UI starting off as if no templates were defined at all.