If a message is printed in the echo area then it can be hidden in two ways: either the user uses some command and the echo area is cleared automatically or an other message comes which replaces the previous one. I use several timers which perform recurring or background tasks, e.g. fetching things from the network. When there is an error in such a timer then often I only know about it by noticing that the task does not produce the usual results, e.g. fails to update something, because other progress messages hide the printed errors. A better way can be if error messages can't be hidden if the user is idle. When I'm using emacs then I usually notice the error, but if I'm in an other app and the error occurs in the meantime then often it's hidden by a progress message by the time I switch back to emacs. So when the user is not idle then things should work as today. But if the user is idle (e.g. uses an other app or is away from the computer) then error messages should not be hidden by other messages, rather they should all be shown in a multiline echo area, so when the user gets back to emacs he can see all the errors which happened while he was away.