cMessage::getEventDuration() semantically wrong
The function cMessage::getEventDuration() is semantically wrong. While this does not impose a direct bug since all functionality is $somewhere, it makes the code hard to read and understand.
The getEventDuration() function should only determine and return the duration of an event. However, it additionally checks whether the module the event takes place on is currently busy or not, and spins if necessary. This functionality should go somewhere else.
Further, we should re-think the caching policy. It appears to be correct, but looks missleading.