You told us what you're NOT calling or CAN'T call, but missed it if you told us what you're calling to get the message displayed. If it's in a trigger or action script, and if you're calling the message() global function to display the message, then that's the way it works, and there are no other options to it to say to persist, etc.
Now if you're displaying the message within the Memento user interface, like an error message from a data validation error, I know less about these, and there could be an option or something, but I don't know of any, and I don't know that there aren't such things.