I will address your second question, namely, whether there is an NFA with fewer states. The appropriate technique here is fooling set:
Let $L$ be a language, and let $x_1,\ldots,x_n,y_1,\ldots,y_n$ be words such that $x_iy_i \in L$ but for every $i \neq j$, either $x_iy_j \notin L$ or $x_jy_i \notin L$. Then every NFA for $L$ contains at least $n$ states.
(The proof is a simple exercise.)
In our case, we take
$$
\begin{array}{c|cc}
i & x_i & y_i \\\hline
1 & bbaa & \epsilon \\
2 & bba & a \\
3 & bb & aa \\
4 & b & aaa \\
5 & \epsilon & bbaa
\end{array}
$$
For all $i$ we have $x_iy_i = bbaa \in L$. Conversely, if $i < j$ then $|x_jy_i| < 4$ and so $x_jy_i \notin L$.
In fact, we have proven the following more general result:
If the minimal length of a word in $L$ is $\ell$, then every NFA for $L$ contains at least $\ell+1$ states.
(a|b)*bba(a|b)*a
? $\endgroup$