[proofplan]
We first show that a submodule $N\subset M(\lambda)$ is closed under taking weight components. This is done by using polynomial projectors in $U(\mathfrak h)$ on the finitely many weight components of a chosen vector. Once $N$ contains weight vectors, we choose one whose weight is as high as possible among the weights occurring in $N$, measured by minimal height below $\lambda$. Positive-root operators raise weights, so applying any element of $\mathfrak n^+$ to this vector would produce a strictly higher weight in $N$ unless the result is zero.
[/proofplan]
[step:Decompose vectors in $N$ into weight components that still lie in $N$]
Let $Q_+$ denote the positive root monoid generated by the simple roots:
\begin{align*}
Q_+ := \sum_{\gamma\in\Delta}\mathbb Z_{\ge 0}\gamma.
\end{align*}
Define the height map
\begin{align*}
\operatorname{ht}:Q_+&\to\mathbb Z_{\ge 0}
\end{align*}
by declaring, for the unique expression $\beta=\sum_{\gamma\in\Delta}m_\gamma\gamma$ with $m_\gamma\in\mathbb Z_{\ge 0}$,
\begin{align*}
\operatorname{ht}(\beta):=\sum_{\gamma\in\Delta}m_\gamma.
\end{align*}
For a [Lie algebra](/page/Lie%20Algebra) $\mathfrak a$, write $U(\mathfrak a)$ for its universal enveloping algebra. By the PBW model of Verma modules [citetheorem:9374], every vector of $M(\lambda)$ is a finite sum of weight vectors, and every weight of $M(\lambda)$ has the form $\lambda-\beta$ for some $\beta\in Q_+$.
We prove that if $v\in N$ has weight decomposition
\begin{align*}
v=v_1+\cdots+v_m
\end{align*}
where each $v_j$ is a nonzero weight vector of weight $\mu_j\in\mathfrak h^*$ and the weights $\mu_1,\dots,\mu_m$ are distinct, then each $v_j$ lies in $N$.
Fix an index $j\in\{1,\dots,m\}$. For each $i\ne j$, since $\mu_i\ne\mu_j$ as elements of $\mathfrak h^*$, choose an element $h_i\in\mathfrak h$ such that
\begin{align*}
\mu_j(h_i)\ne\mu_i(h_i).
\end{align*}
Define an element $p_j\in U(\mathfrak h)$ by
\begin{align*}
p_j:=\prod_{i\ne j}\frac{h_i-\mu_i(h_i)}{\mu_j(h_i)-\mu_i(h_i)}.
\end{align*}
The denominators are nonzero by construction. Since $v_i$ has weight $\mu_i$, the element $h_i-\mu_i(h_i)$ kills $v_i$. Since $v_j$ has weight $\mu_j$, the factor indexed by $i$ acts on $v_j$ as multiplication by $1$. Therefore
\begin{align*}
p_jv=v_j.
\end{align*}
Because $N$ is a $\mathfrak g$-submodule, it is stable under the action of $U(\mathfrak g)$, hence under $U(\mathfrak h)\subset U(\mathfrak g)$. Since $v\in N$, this gives $v_j=p_jv\in N$.
[guided]
The point of this step is to justify that we may look for a special vector in $N$ among weight vectors, not just among arbitrary vectors. Let
\begin{align*}
Q_+ := \sum_{\gamma\in\Delta}\mathbb Z_{\ge 0}\gamma
\end{align*}
be the positive root monoid generated by the simple roots. Define the height map
\begin{align*}
\operatorname{ht}:Q_+&\to\mathbb Z_{\ge 0}
\end{align*}
as follows: if $\beta=\sum_{\gamma\in\Delta}m_\gamma\gamma$ is the unique expression of $\beta$ in the simple-root basis with $m_\gamma\in\mathbb Z_{\ge 0}$, then
\begin{align*}
\operatorname{ht}(\beta):=\sum_{\gamma\in\Delta}m_\gamma.
\end{align*}
For a Lie algebra $\mathfrak a$, write $U(\mathfrak a)$ for its universal enveloping algebra. By the PBW description of Verma modules [citetheorem:9374], every vector of $M(\lambda)$ is a finite sum of weight vectors, and the possible weights are of the form $\lambda-\beta$ with $\beta\in Q_+$.
Now take an element $v\in N$ and write its finite weight decomposition as
\begin{align*}
v=v_1+\cdots+v_m,
\end{align*}
where $v_j$ is a nonzero weight vector of weight $\mu_j\in\mathfrak h^*$, and the weights $\mu_1,\dots,\mu_m$ are pairwise distinct. We need to prove that each component $v_j$ still lies in $N$. The problem is that $N$ is known to be stable under $\mathfrak g$, not automatically under taking summands in an abstract [direct sum](/page/Direct%20Sum) decomposition. We isolate each summand using an operator built from $\mathfrak h$.
Fix $j\in\{1,\dots,m\}$. For every $i\ne j$, the weights $\mu_i$ and $\mu_j$ are distinct linear functionals on $\mathfrak h$, so there exists $h_i\in\mathfrak h$ such that
\begin{align*}
\mu_j(h_i)\ne\mu_i(h_i).
\end{align*}
Define
\begin{align*}
p_j:=\prod_{i\ne j}\frac{h_i-\mu_i(h_i)}{\mu_j(h_i)-\mu_i(h_i)}
\end{align*}
as an element of $U(\mathfrak h)$. The denominator in each factor is nonzero by the choice of $h_i$.
This operator acts as a projector onto the $j$-th weight component. Indeed, if $i\ne j$, then the factor $h_i-\mu_i(h_i)$ kills $v_i$, because $h_i$ acts on the weight vector $v_i$ by the scalar $\mu_i(h_i)$. On the other hand, for $v_j$, the same factor acts by the scalar
\begin{align*}
\frac{\mu_j(h_i)-\mu_i(h_i)}{\mu_j(h_i)-\mu_i(h_i)}=1.
\end{align*}
Thus every factor in $p_j$ acts as the identity on $v_j$, while at least one factor kills each other component. Hence
\begin{align*}
p_jv=v_j.
\end{align*}
Finally, because $N$ is a $\mathfrak g$-submodule, it is stable under the action of $U(\mathfrak g)$. Since $U(\mathfrak h)\subset U(\mathfrak g)$, the element $p_j$ sends $N$ to itself. Therefore $v_j=p_jv\in N$.
[/guided]
[/step]
[step:Choose a nonzero weight vector in $N$ of minimal height below $\lambda$]
Since $N\ne 0$, choose $0\ne v\in N$. By the previous step, at least one nonzero weight component of $v$ lies in $N$. Hence the set
\begin{align*}
S:=\{\beta\in Q_+ : N_{\lambda-\beta}\ne 0\}
\end{align*}
is nonempty, where
\begin{align*}
N_{\lambda-\beta}:=N\cap M(\lambda)_{\lambda-\beta}.
\end{align*}
The set
\begin{align*}
\{\operatorname{ht}(\beta):\beta\in S\}\subseteq\mathbb Z_{\ge 0}
\end{align*}
is a nonempty subset of the nonnegative integers, so it has a least element. Choose $\beta_0\in S$ with minimal height, and choose
\begin{align*}
0\ne w\in N_{\lambda-\beta_0}.
\end{align*}
Then $w$ is a nonzero weight vector of weight $\lambda-\beta_0$.
[/step]
[step:Show every positive root vector kills the minimal-height vector]
For $\alpha\in\Phi$, let
\begin{align*}
\mathfrak g_\alpha:=\{y\in\mathfrak g:[h,y]=\alpha(h)y\text{ for every }h\in\mathfrak h\}
\end{align*}
denote the corresponding root space. Let $\alpha\in\Phi^+$ and let $x\in\mathfrak g_\alpha$. Since $N$ is a $\mathfrak g$-submodule and $w\in N$, we have $xw\in N$. By the root-operator weight-shift property [citetheorem:9362], the vector $xw$ either is zero or has weight
\begin{align*}
(\lambda-\beta_0)+\alpha=\lambda-(\beta_0-\alpha).
\end{align*}
If $xw\ne 0$, then $\beta_0-\alpha\in Q_+$ because every weight of $M(\lambda)$ is of the form $\lambda-\beta$ with $\beta\in Q_+$. Because $\alpha\in\Phi^+$ is a positive integral combination of simple roots, $\operatorname{ht}(\alpha)>0$. Therefore
\begin{align*}
\operatorname{ht}(\beta_0-\alpha)=\operatorname{ht}(\beta_0)-\operatorname{ht}(\alpha)<\operatorname{ht}(\beta_0),
\end{align*}
contradicting the minimality of $\operatorname{ht}(\beta_0)$ among weights occurring in $N$. Therefore $xw=0$ for every $\alpha\in\Phi^+$ and every $x\in\mathfrak g_\alpha$.
[/step]
[step:Conclude that the chosen vector is singular]
The positive nilpotent subalgebra is
\begin{align*}
\mathfrak n^+=\bigoplus_{\alpha\in\Phi^+}\mathfrak g_\alpha.
\end{align*}
The previous step shows that every element of every summand $\mathfrak g_\alpha$ kills $w$. By linearity of the action, every element of $\mathfrak n^+$ kills $w$, so
\begin{align*}
\mathfrak n^+w=0.
\end{align*}
Since $w\ne 0$ and $w$ is a weight vector, $w$ is a nonzero singular vector contained in $N$. This proves the theorem.
[/step]