Your proof is correct! In general you can prove that if a sequence of functions $\{f_n\}_n$ converges uniformly on a finite set of domains $A_1,\dots,A_k$ (in your case the domains are $A_1=\{a\},A_2=(a,b),A_3=\{b\}$), then it converges uniformly in its union $\cup_k A_k.$
The proof works exactly like yours.
Indeed, for every $\epsilon>0$ there exist $N_1,\dots,N_k$ such that for every $n\geq N_i$ it is true that $|f(x)-f_n(x)|<\epsilon$ for every $x\in A_i$.
It is then sufficient to consider $N=max \{N_1,\dots,N_k\}$ to say that $|f(x)-f_n(x)|<\epsilon$ for every $x\in \cup_i A_i$ and for every $n\geq N,$ which is exactly the concept of uniform convergence.
I claim that $U\subseteq \Bbb R$ is a set such that the sequence $(f_n)$ is uniformly convergent (to $0$) on $U$ if and only if there exist $\epsilon$ such that $0<\epsilon<\frac{1}{\sqrt{2}}$ and sets $V\subset [-\sqrt 2+\epsilon,-\epsilon]$ and $W\subset [\epsilon,\sqrt 2-\epsilon]$ such that $U\setminus\{0\}=V\cup W$. First, as you noticed, the sequence $\big(f_n(x)\big)$ converges if and only if $x\in (-\sqrt2,\sqrt2)$ (and the limit is $0$). So, if $(f_n)$ uniformly converges on $U$, then $U\subseteq (-\sqrt2,\sqrt2)$.
Let $V=U\cap (-\sqrt2,0)$ and $W=U\cap(0,\sqrt{2})$. If $0$ is an accumulation point of $W$, then there exists a sequence $(t_1,t_2,\ldots)$ in $W$ with $\frac1{\sqrt3}\geq t_1>t_2>\ldots$ such that $\lim_{k\to\infty} t_k=0$. For each $k$, suppose that $$\frac{1}{\sqrt{2n_k+3}}< t_k\leq \frac{1}{\sqrt{2n_k+1}}$$
for some positive integer $n_k$. Then,
$$f_{n_k}(t_k)\geq f_{n_k}\left(\frac{1}{\sqrt{2n_k+3}}\right)=\frac{n_k}{\sqrt{2n_k+3}}\left(1-\frac{1}{2n_k+3}\right)^{n_k}>\frac{n_k}{\sqrt{e(2n_k+3)}}.$$
That is,
$$f_{n_k}(t_k)\geq \sqrt{\frac{n_k}{5e}}.$$
This means $f_n$ does not converge uniformly to $0$ on $W$. This is a contradiction, so $0$ is not an accumulation point of $W$. Similarly, $0$ is not an accumulation point of $V$.
If $\sqrt2$ is an accumulation point of $W$, then there exists a sequence $(t_1,t_2,\ldots)$ in $W$ with $\sqrt2-\frac{1}{3}\leq t_1<t_2<\ldots$ such that $\lim_{k\to\infty} t_k=\sqrt2$. Let $n_k\geq 3$ be an integer such that
$$\frac1{n_k+1}<\sqrt2-t_k\leq \frac1{n_k}.$$
Then,
$$\left\vert f_{n_k}(t_k)\right\vert\geq \Biggl\vert f_{n_k}\left(\sqrt{2}-\frac1{n_k}\right)\Biggr\vert=n_k\left(\sqrt{2}-\frac{1}{n_k}\right)\left(1-\frac{2\sqrt{2}}{n_k}+\frac{1}{n_k^2}\right)^{n_k}.$$
That is,
$$f_{n_k}(t_k)\geq n_k\left(\sqrt{2}-\frac13\right)\left(\frac{8-6\sqrt{2}}{9}\right)^3.$$
This means that $f_n$ does not converge uniformly to $0$ on $W$. This is a contradiction, so $\sqrt{2}$ is not an accumulation point of $W$. Similarly, $-\sqrt2$ is not an accumulation point of $V$. One direction of the claim is now proved.
Conversely, suppose that $U$ satisfies the condition that there exist $\epsilon$ such that $0<\epsilon<\frac{1}{\sqrt{2}}$ and sets $V\subset [-\sqrt 2+\epsilon,-\epsilon]$ and $W\subset [\epsilon,\sqrt 2-\epsilon]$ such that $U\setminus\{0\}=V\cup W$. Then, there exists a compact set $K\subseteq [-\sqrt2+\epsilon,-\epsilon]\cup\{0\}\cup [\epsilon,\sqrt2-\epsilon]$ that contains $U$. It suffices to prove that $(f_n)$ converges uniformly to $0$ on $K$.
Fix $\delta>0$. Clearly, $f_n(0)=0$ for every $n$, so the point $0$ is not a concern. For $x\in K$ such that $|x|> 1$ (that is we assume that $\epsilon< \sqrt2-1$), we have
$$\big|f_n(x)\big|\leq n(\sqrt 2-\epsilon)\big((\sqrt2-\epsilon)^2-1\big)^n=n(\sqrt2-\epsilon)(1-2\sqrt2\epsilon+\epsilon^2)^n.$$
As $1-2\sqrt2\epsilon+\epsilon^2<1$ and exponential decays beat polynomial decays, we have $n(\sqrt2-\epsilon)(1-2\sqrt2\epsilon+\epsilon^2)^n\to 0$. Let $N_1$ be a positive integer such that $$\big|f_n(x)\big|=n(\sqrt2-\epsilon)(1-2\sqrt2\epsilon+\epsilon^2)^n<\delta$$ for all $n\geq N_1$. In the case that $\epsilon\geq \sqrt{2}-1$. we can set $N_1$ to be $1$.
Suppose now that $x\in K$ satisfies $\epsilon\leq |x|\leq 1$. Let $N$ be so large a positive integer that $$\frac{1}{\sqrt{2N+1}}<\epsilon.$$ Then, for $n\geq N$, we have
$$\big|f_n(x)\big|\geq f_n(\epsilon)=n\epsilon(1-\epsilon^2)^n.$$
As before, there exists a positive integer $N_2\geq N$ such that $$\big|f_n(x)\big|\geq n\epsilon(1-\epsilon^2)^n<\delta$$
for all $n\geq N_2$. Set $M$ to be the maximum among $N_1$ and $N_2$. Then,
$$\big|f_n(x)-0\big|=\big|f_n(x)\big|<\delta$$
for every $n\geq M$ and $x\in K$. Therefore, $(f_n)$ converges to $0$ uniformly on $K$.
Best Answer
What you have tried so far is correct.
If you have to find all intervals where $f_n$ uniformly converges you also have to prove that if $|x|\ge 1$ then it doesn't converge.
Finding a function $g_n$ such that $\forall n \in \Bbb N, g_n\le f_n$ and $g_n$ diverges would be the way to go.
Hint: