[step:Build a cycle of length $\ell$ via pigeonhole on $N^-(x_1)$ and $N(x_\ell)$]Define
\begin{align*}
N^-(x_1) := \{x_i \in V(P) : 1 \leq i \leq \ell - 1,\ x_{i+1} \in N(x_1)\}.
\end{align*}
The map $x_i \mapsto x_{i+1}$ is a bijection from $N^-(x_1)$ onto $N(x_1) \cap \{x_2, \ldots, x_\ell\} = N(x_1)$ (the latter by the endpoint claim). Hence $|N^-(x_1)| = |N(x_1)| \geq k/2$, and $N^-(x_1) \subseteq \{x_1, \ldots, x_{\ell-1}\}$.
Both $N^-(x_1)$ and $N(x_\ell)$ are subsets of $\{x_1, \ldots, x_{\ell-1}\}$, a set of size $\ell - 1$.
**Case analysis on $\ell$.** We claim that if $\ell \leq k$, we can derive a contradiction.
Suppose $\ell \leq k$. Then by pigeonhole,
\begin{align*}
|N^-(x_1) \cap N(x_\ell)| \geq |N^-(x_1)| + |N(x_\ell)| - (\ell - 1) \geq \frac{k}{2} + \frac{k}{2} - (\ell - 1) = k - \ell + 1 \geq 1.
\end{align*}
So there exists $x_i \in N^-(x_1) \cap N(x_\ell)$: an index with $x_{i+1} \in N(x_1)$ and $x_i \in N(x_\ell)$.
Construct the cycle
\begin{align*}
C: x_i,\ x_\ell,\ x_{\ell-1},\ \ldots,\ x_{i+1},\ x_1,\ x_2,\ \ldots,\ x_i
\end{align*}
by concatenating: the edge $x_i x_\ell$, the reversed path segment $x_\ell, x_{\ell-1}, \ldots, x_{i+1}$ (using edges $x_\ell x_{\ell-1}, \ldots, x_{i+2} x_{i+1}$), the edge $x_{i+1} x_1$, and the forward path segment $x_1, x_2, \ldots, x_i$ (using edges $x_1 x_2, \ldots, x_{i-1} x_i$). This is a cycle with $\ell$ distinct vertices and $\ell$ edges: a cycle of length $\ell$ through every vertex of $P$.
[illustration:long-path-cycle-construction][/step]