When you say message handling you probably don't speak about AmigaOS messages, do you?
If you have multiple Amiga message ports it's quite easy to handle them all at the same time. You have one place in your program where you Wait() for all signals of all ports and then handle each port depending on which signal you received. (Example attached).