All $O$-notations and $o$-notations work for $n\to\infty$.
First we have $2^{n+1}\ge n!x_0$, hence $x_0\le2^{n+1}/n!=O(2^n/n!)$. Take logarithm, we derive that
\begin{equation}
\begin{split}
(n+1)\ln(2-x_0)&=\ln x_0+\sum_{k=1}^n\ln(x_0+k)\\
&=\ln n!+\ln x_0+\sum_{k=1}^n\ln\left(1+\frac{x_0}k\right)
\end{split}
\end{equation}
therefore
\begin{gather}
\ln(2-x_0)=\ln2+\ln(1-x_0/2)=\ln2+O(x_0)\\
\sum_{k=1}^n\ln(1+x_0/k)=\sum_{k=1}^nO(x_0/k)=O(x_0H_n)
\end{gather}
\begin{equation}
\begin{split}
\ln x_0&=(n+1)\ln(2-x_0)-\sum_{k=1}^n\ln\left(1+\frac{x_0}k\right)-\ln n!\\
&=(n+1)(\ln 2+O(x_0))-\ln n!-O(x_0H_n)\\
&=-\ln n!+(n+1)\ln 2+O(nx_0)
\end{split}
\end{equation}
\begin{equation}
x_0=\frac{2^{n+1}(1+O(nx_0))}{n!}
\end{equation}
Notice that $nx_0=O(2^n/(n-1)!)=o(1)$, so we have $x_0\sim2^{n+1}/n!$, thus
\begin{equation}
x_0=\frac{2^{n+1}}{n!}+O(nx_0^2)
\end{equation}
Now we can observe $x_0$ more closely
\begin{equation}
\begin{split}
\ln(2-x_0)&=\ln2+\ln(1-x_0/2)=\ln2-x_0/2+O(x_0^2)\\
&=\ln2-2^n/n!+O(nx_0^2)
\end{split}
\end{equation}
\begin{equation}
\begin{split}
\sum_{k=1}^n\ln(1+x_0/k)
&=\sum_{k=1}^n(x_0/k+O(x_0/k)^2)\\
&=H_nx_0+O\left(x_0\sum_{k\ge1}1/k^2\right)\\
&=H_n(2^{n+1}/n!+O(nx_0^2))+O(x_0^2)\\
&=\frac{2^{n+1}H_n}{n!}+O(x_0^2\cdot n\log n)
\end{split}
\end{equation}
\begin{equation}
\ln x_0=-\ln n!+(n+1)\ln2-\frac{2^n(n+2H_n+1)}{n!}+O(n^2x_0^2)
\end{equation}
\begin{equation}
\begin{split}
x_0&=\frac{2^{n+1}}{n!}\exp\left(-\frac{2^n(n+2H_n+1)}{n!}\right)(1+O(n^2x_0^2))\\
&=\frac{2^{n+1}}{n!}\left(1-\frac{2^n(n+2H_n+1)}{n!}\right)(1+O(n^2x_0^2))\\
&=\frac{2^{n+1}}{n!}\left(1-\frac{2^n(n+2H_n+1)}{n!}\right)+O(n^2x_0^3)
\end{split}
\end{equation}
Next, we compute $\ln M$
\begin{equation}
\begin{split}
\ln M&=\sum_{k=0}^n(k+2)(\ln(k+2)-\ln(k+x_0))\\
&=\sum_{k=1}^{n+2}k\ln k-\sum_{k=0}^n(k+2)\ln(k+x_0)
\end{split}
\end{equation}
where
\begin{equation}
\begin{split}
\sum_{k=0}^n(k+2)\ln(k+x_0)&=2\ln x_0+\sum_{k=1}^n(k+2)(\ln k+\ln(1+x_0/k))\\
&=2\ln x_0+\sum_{k=1}^n(k+2)\ln k+\sum_{k=1}^n(k+2)\ln(1+x_0/k)\\
&=2\left((n+1)\ln(2-x_0)-\sum_{k=1}^n\ln(1+x_0/k)-\ln n!\right)\\
&\qquad+\sum_{k=1}^n(k+2)\ln k+\sum_{k=1}^n(k+2)\ln(1+x_0/k)\\
&=2(n+1)\ln(2-x_0)+\sum_{k=1}^nk\ln k+\sum_{k=1}^nk\ln(1+x_0/k)
\end{split}
\end{equation}
thus
\begin{multline}
\ln M=(n+1)\ln(n+1)+(n+2)\ln(n+2)\\
-2(n+1)\ln(2-x_0)-\sum_{k=1}^nk\ln(1+x_0/k)
\end{multline}
therefore
\begin{equation}
x_0^2=\frac{4^{n+1}}{n!^2}(1+O(nx_0))^2=\frac{4^{n+1}}{n!^2}+O(nx_0^3)
\end{equation}
\begin{equation}
\begin{split}
\ln(2-x_0)&=\ln2+\ln(1-x_0/2)=\ln2-x_0/2-x_0^2/8+O(x_0^3)\\
&=\ln2-\frac{2^n}{n!}\left(1-\frac{2^n(n+2H_n+1)}{n!}\right)-\frac18\frac{4^{n+1}}{n!^2}+O(n^2x_0^3)\\
&=\ln2-\frac{2^n}{n!}+\frac{4^n}{n!^2}\left(n+2H_n+\frac12\right)+O(n^2x_0^3)
\end{split}
\end{equation}
\begin{equation}
\begin{split}
\sum_{k=1}^nk\ln(1+x_0/k)&=\sum_{k=1}^nk(x_0/k-x_0^2/2k^2+O(x_0/k)^3)\\
&=nx_0-\frac12H_nx_0^2+O\left(x_0^3\sum_{k\ge1}1/k^2\right)\\
&=n\frac{2^{n+1}}{n!}\left(1-\frac{2^n(n+2H_n+1)}{n!}\right)-\frac12H_n\frac{4^{n+1}}{n!^2}+O(n^3x_0^3)\\
&=2n\frac{2^n}{n!}-\frac{4^n}{n!^2}(2n^2+4nH_n+2n+2H_n)+O(n^3x_0^3)
\end{split}
\end{equation}
We have enough stuff to estimate $\ln M$ now.
\begin{multline}
\ln M=(n+1)\ln(n+1)+(n+2)\ln(n+2)-2(n+1)\ln2\\
+\frac{2^{n+1}}{n!}-\frac{4^n}{n!^2}(n+2H_n+1)+O(n^3x_0^3)
\end{multline}
thus
\begin{equation}
\begin{split}
M&=\frac{(n+1)^{n+1}(n+2)^{n+2}}{4^{n+1}}\\
&\qquad\qquad\exp\left(\frac{2^{n+1}}{n!}\right)\exp\left(-\frac{4^n}{n!^2}(n+2H_n+1)\right)\\
&\qquad\qquad(1+O(n^3x_0^3))
\end{split}
\end{equation}
Finally, we have
\begin{gather}
\exp\left(\frac{2^{n+1}}{n!}\right)=1+\frac{2^{n+1}}{n!}+\frac{2\cdot4^n}{n!^2}+O(x_0^3)\\
\exp\left(-\frac{4^n}{n!^2}(n+2H_n+1)\right)=1-\frac{4^n}{n!^2}(n+2H_n+1)+O(n^2x_0^4)
\end{gather}
and
\begin{equation}
\begin{split}
M&=\frac{(n+1)^{n+1}(n+2)^{n+2}}{4^{n+1}}\\
&\qquad\qquad\left(1+\frac{2^{n+1}}{n!}-\frac{4^n}{n!^2}(n+2H_n-1)\right)\\
&\qquad\qquad(1+O(n^3x_0^3))
\end{split}
\end{equation}
Notice that the absolute error
\begin{equation}
O\left(\frac{n^3(n+1)^{n+1}(n+2)^{n+2}}{4^{n+1}}x_0^3\right)
\end{equation}
approaches $0$ when $n\to\infty$.