[proofplan]
We use only the defining property of discrepancy: every half-open interval $[a,b)\subset[0,1)$ has empirical count within $ND_N$ of its expected count $N(b-a)$. Applying this to the two intervals $[0,\delta)$ and $[1-\delta,1)$ and then adding the two count estimates gives the two-sided estimate for the half-open union. The nearest-integer condition corresponds to the fractional part lying in $[0,\delta)\cup(1-\delta,1)$, so it is contained in the half-open union; if no fractional part equals $1-\delta$, the two counted sets coincide.
[/proofplan]
[step:Apply the discrepancy definition to the two endpoint intervals]
Let $y_n:=\{x_n\}\in[0,1)$ for each $1\le n\le N$, and set
\begin{align*}
D:=D_N(x_1,\dots,x_N).
\end{align*}
Define the two counts
\begin{align*}
A_0:=\#\{1\le n\le N:y_n\in[0,\delta)\}
\end{align*}
and
\begin{align*}
A_1:=\#\{1\le n\le N:y_n\in[1-\delta,1)\}.
\end{align*}
By the definition of $D$, applied first to the half-open interval $[0,\delta)$ and then to the half-open interval $[1-\delta,1)$, we have
\begin{align*}
|A_0-\delta N|\le ND
\end{align*}
and
\begin{align*}
|A_1-\delta N|\le ND.
\end{align*}
[guided]
For each $1\le n\le N$, define $y_n:=\{x_n\}\in[0,1)$. Define
\begin{align*}
D:=D_N(x_1,\dots,x_N).
\end{align*}
Also define the endpoint counts
\begin{align*}
A_0:=\#\{1\le n\le N:y_n\in[0,\delta)\}
\end{align*}
and
\begin{align*}
A_1:=\#\{1\le n\le N:y_n\in[1-\delta,1)\}.
\end{align*}
The discrepancy $D$ is defined as the largest normalized error over all half-open intervals $[a,b)\subset[0,1)$. Thus, for every $0\le a<b\le 1$, the definition gives
\begin{align*}
\left|\frac{1}{N}\#\{1\le n\le N:y_n\in[a,b)\}-(b-a)\right|\le D.
\end{align*}
Multiplying by $N$ gives the unnormalized form
\begin{align*}
\left|\#\{1\le n\le N:y_n\in[a,b)\}-N(b-a)\right|\le ND.
\end{align*}
We apply this with $a=0$ and $b=\delta$. Since $0<\delta\le 1/2$, the interval $[0,\delta)$ is a valid half-open interval in $[0,1)$, and its length is $\delta$. Therefore
\begin{align*}
|A_0-\delta N|\le ND.
\end{align*}
We apply the same definition with $a=1-\delta$ and $b=1$. Since $0<\delta\le 1/2$, we have $0\le 1-\delta<1$, so $[1-\delta,1)$ is also a valid half-open interval in $[0,1)$, and its length is $\delta$. Hence
\begin{align*}
|A_1-\delta N|\le ND.
\end{align*}
[/guided]
[/step]
[step:Add the two interval errors to bound the half-open union]
Since $0<\delta\le 1/2$, the intervals $[0,\delta)$ and $[1-\delta,1)$ are disjoint. Hence
\begin{align*}
\#\{1\le n\le N:y_n\in[0,\delta)\cup[1-\delta,1)\}=A_0+A_1.
\end{align*}
Using the triangle inequality together with the two estimates from the previous step,
\begin{align*}
|(A_0+A_1)-2\delta N|\le |A_0-\delta N|+|A_1-\delta N|.
\end{align*}
Therefore
\begin{align*}
|(A_0+A_1)-2\delta N|\le 2ND.
\end{align*}
This is exactly
\begin{align*}
\left|\#\{1\le n\le N:\{x_n\}\in [0,\delta)\cup[1-\delta,1)\}-2\delta N\right|\le 2ND_N(x_1,\dots,x_N).
\end{align*}
[guided]
The two intervals are disjoint because $\delta\le 1/2$: any point of $[0,\delta)$ is strictly less than $\delta$, while any point of $[1-\delta,1)$ is at least $1-\delta$, and $\delta\le 1-\delta$. Therefore counting membership in their union is the same as adding the two separate counts:
\begin{align*}
\#\{1\le n\le N:y_n\in[0,\delta)\cup[1-\delta,1)\}=A_0+A_1.
\end{align*}
The target main term for the union is the sum of the two interval lengths, namely $2\delta N$. We compare $A_0+A_1$ with this main term by adding and subtracting the two expected counts and using the triangle inequality in $\mathbb R$:
\begin{align*}
|(A_0+A_1)-2\delta N|=|(A_0-\delta N)+(A_1-\delta N)|.
\end{align*}
Thus
\begin{align*}
|(A_0+A_1)-2\delta N|\le |A_0-\delta N|+|A_1-\delta N|.
\end{align*}
From the discrepancy estimates already proved for $[0,\delta)$ and $[1-\delta,1)$, each term on the right is at most $ND$. Hence
\begin{align*}
|(A_0+A_1)-2\delta N|\le 2ND.
\end{align*}
Substituting back $D=D_N(x_1,\dots,x_N)$ and $y_n=\{x_n\}$ gives
\begin{align*}
\left|\#\{1\le n\le N:\{x_n\}\in [0,\delta)\cup[1-\delta,1)\}-2\delta N\right|\le 2ND_N(x_1,\dots,x_N).
\end{align*}
[/guided]
[/step]
[step:Compare the nearest-integer condition with the half-open union]
For $y\in[0,1)$, the equality
\begin{align*}
\|y\|_{\mathbb R/\mathbb Z}=\min\{y,1-y\}
\end{align*}
holds, with the convention that $1-y=1$ when $y=0$ still gives the minimum $0$. Therefore
\begin{align*}
\{y\in[0,1):\|y\|_{\mathbb R/\mathbb Z}<\delta\}=[0,\delta)\cup(1-\delta,1).
\end{align*}
For each $1\le n\le N$, since $x_n-y_n=\lfloor x_n\rfloor\in\mathbb Z$, the definition of distance to $\mathbb Z$ gives
\begin{align*}
\|x_n\|_{\mathbb R/\mathbb Z}=\|y_n\|_{\mathbb R/\mathbb Z}.
\end{align*}
Applying the preceding characterization to $y_n=\{x_n\}$ gives the containment
\begin{align*}
\{1\le n\le N:\|x_n\|_{\mathbb R/\mathbb Z}<\delta\}\subseteq\{1\le n\le N:y_n\in[0,\delta)\cup[1-\delta,1)\}.
\end{align*}
Combining this containment with the half-open estimate gives
\begin{align*}
\#\{1\le n\le N:\|x_n\|_{\mathbb R/\mathbb Z}<\delta\}\le 2\delta N+2ND_N(x_1,\dots,x_N).
\end{align*}
[guided]
We now translate the set defined by nearest-integer distance into a set of fractional parts. If $y\in[0,1)$, then the nearest integer to $y$ is either $0$ or $1$ for the purpose of minimizing the distance to $\mathbb Z$, so
\begin{align*}
\|y\|_{\mathbb R/\mathbb Z}=\min\{y,1-y\}.
\end{align*}
For $y=0$, this formula still gives $0$ because $\min\{0,1\}=0$. Hence $\|y\|_{\mathbb R/\mathbb Z}<\delta$ holds exactly when either $0\le y<\delta$ or $1-\delta<y<1$. Therefore
\begin{align*}
\{y\in[0,1):\|y\|_{\mathbb R/\mathbb Z}<\delta\}=[0,\delta)\cup(1-\delta,1).
\end{align*}
We must also justify replacing $x_n$ by its fractional part. By definition, $y_n=\{x_n\}=x_n-\lfloor x_n\rfloor$, so $x_n-y_n=\lfloor x_n\rfloor\in\mathbb Z$. Distance to $\mathbb Z$ is invariant under adding or subtracting an integer, hence
\begin{align*}
\|x_n\|_{\mathbb R/\mathbb Z}=\|y_n\|_{\mathbb R/\mathbb Z}.
\end{align*}
Thus every index counted by $\|x_n\|_{\mathbb R/\mathbb Z}<\delta$ has $y_n\in[0,\delta)\cup(1-\delta,1)$. Since $(1-\delta,1)\subset[1-\delta,1)$, we obtain
\begin{align*}
\{1\le n\le N:\|x_n\|_{\mathbb R/\mathbb Z}<\delta\}\subseteq\{1\le n\le N:y_n\in[0,\delta)\cup[1-\delta,1)\}.
\end{align*}
The half-open union has already been bounded by $2\delta N+2ND_N(x_1,\dots,x_N)$ after dropping the absolute value upper side. Therefore
\begin{align*}
\#\{1\le n\le N:\|x_n\|_{\mathbb R/\mathbb Z}<\delta\}\le 2\delta N+2ND_N(x_1,\dots,x_N).
\end{align*}
[/guided]
[/step]
[step:Remove the boundary point when no fractional part equals $1-\delta$]
Assume now that $y_n\ne 1-\delta$ for every $1\le n\le N$. Since
\begin{align*}
[0,\delta)\cup[1-\delta,1)
\end{align*}
and
\begin{align*}
[0,\delta)\cup(1-\delta,1)
\end{align*}
differ only at the point $1-\delta$, the assumption implies
\begin{align*}
\{1\le n\le N:y_n\in[0,\delta)\cup[1-\delta,1)\}=\{1\le n\le N:\|x_n\|_{\mathbb R/\mathbb Z}<\delta\}.
\end{align*}
Substituting this equality into the half-open estimate proves
\begin{align*}
\left|\#\{1\le n\le N:\|x_n\|_{\mathbb R/\mathbb Z}<\delta\}-2\delta N\right|\le 2ND_N(x_1,\dots,x_N).
\end{align*}
This completes the proof.
[guided]
The only difference between the half-open union and the nearest-integer fractional-part set is the left endpoint of the second interval. More precisely,
\begin{align*}
[0,\delta)\cup[1-\delta,1)
\end{align*}
and
\begin{align*}
[0,\delta)\cup(1-\delta,1)
\end{align*}
differ only at the single point $1-\delta$. Under the additional hypothesis $y_n\ne 1-\delta$ for every $1\le n\le N$, no index can be counted by one of these two sets and not the other. Therefore
\begin{align*}
\{1\le n\le N:y_n\in[0,\delta)\cup[1-\delta,1)\}=\{1\le n\le N:y_n\in[0,\delta)\cup(1-\delta,1)\}.
\end{align*}
By the nearest-integer characterization and the identity $\|x_n\|_{\mathbb R/\mathbb Z}=\|y_n\|_{\mathbb R/\mathbb Z}$, the right-hand set is
\begin{align*}
\{1\le n\le N:\|x_n\|_{\mathbb R/\mathbb Z}<\delta\}.
\end{align*}
Substituting this equality of counted sets into the already proved half-open discrepancy estimate gives
\begin{align*}
\left|\#\{1\le n\le N:\|x_n\|_{\mathbb R/\mathbb Z}<\delta\}-2\delta N\right|\le 2ND_N(x_1,\dots,x_N).
\end{align*}
This proves the final assertion and completes the proof.
[/guided]
[/step]