Here's a more efficient way of doing it. Let's map all the strings of length $n$ into strings of length $n+O(\sqrt{n} \log n)$ with no consecutive string of $0$'s of length more than $\sqrt{n}$. We then add a string $1 0^{a}1$ at the end, where $a \geq \sqrt{n} + 1$. Our mapping isn't always going to give us the same length string, so $a$ can vary.
How do we do this encoding? We need a way of encoding long string of 0's. Let's do that by
taking a string of $0$'s of length at least $t$ and mapping it to a string of zeros of length $t$ followed by a number telling us how many zeros were in it.
$$
\begin{array}{lcl}
0^{\sqrt{n}} & \rightarrow & 0^{\sqrt{n}}10\ldots000 \\
0^{\sqrt{n}+1} & \rightarrow & 0^{\sqrt{n}}10\ldots001 \\
0^{\sqrt{n}+2} & \rightarrow & 0^{\sqrt{n}}10\ldots010 \\
0^{\sqrt{n} +3} & \rightarrow & 0^{\sqrt{n}}10\ldots011 \\
0^{\sqrt{n} +4} & \rightarrow & 0^{\sqrt{n}}10\ldots100 \\
\vdots &\rightarrow & \vdots
\end{array}
$$
Because we will never have a string of more than $n$ 0's, we can use the first $\lceil\log n \rceil$ bits after the string $0^{\sqrt{n}} 1$ to encode the length of the string of 0's. Thus, the most we can increase the length of our code by is a factor of $1 + \frac{\log n+2}{\sqrt{n}}$. After this expansion of the code, we need to add at least $\sqrt{n} + 1$ consecutive 0's. This lets us take $m = n + \sqrt{n}(\log n + 3)$.
I think you can probably get $m \approx n + \log n\,$ by using the ideas behind arithmetic codes, but I don't have time to work the details out right now. If somebody else wants to work them out and post an answer, please feel free to do so.