I'm confused as to why we care about tracking messages. According to the documentation of the trackMessage method:
"This functionality is used to prevent messages from 
     attempting to return themselves either to or through communicator 
     objects that have been deallocated."

This seems like a lot of drapery around what is effectively bug catching without yelling about it, right? If there are any messages left in this container when the Communicator, i.e. Model or simulation entity (effectively), is destructed, then that's a pretty serious bug. Wouldn't it be better to wrap the calling of such an instance in a try/catch statement and then issue an exception if caught?