Edit to follow up on OP's modifications.
Perhaps this will be ok with your yet to be precisely specified yet unknown constraints:
\documentclass{article}
\newcommand{\mymessage}[1]{\bgroup\escapechar-1 \typeout{\detokenize{#1}}\egroup}
\begin{document}
\mymessage{foo\#bar\!foo\%hello\&world}
\end{document}
produces:
foo#bar!foo%hello&world
original answer
If you are not using \mymessage from inside macros, you could try
\documentclass{article}
\newcommand{\mymessage}{\bgroup\lccode`~=`\\\lowercase{\let~\string}%
\catcode92 13 \mynoescapemessage}
\newcommand{\mynoescapemessage}[1]{\typeout{#1}\egroup}
\begin{document}
\mymessage{foo\#bar\!foo\hello\world}
\end{document}
Produces:
foo#bar!foohelloworld
Notice that the reason the thing is a bit complicated (I could have chosen catcode 9 (aka "ignore")) is to avoid:
foo##bar
due to special treatment by TeX of # tokens.
\#. – egreg Nov 07 '15 at 10:40