Classifying space as the geometric realization of the nerve of $G$ viewed as a small category

You're spot on with Hatcher's construction. First he constructs the space $EG$ as a $\Delta$-complex, but this can easily be upgraded to a simplicial set $\mathcal{E}G$ such that $EG$ is the geometric realisation of $\mathcal{E}G$:

In fact let $\mathcal{E}G_n:=G^{n+1}$ and define the face maps as $(g_0, ..., g_n) \mapsto (g_0, ..., \widehat{g_i}, ..., g_n)$ and the degeneracy maps as $(g_0, ..., g_{n-1}) \mapsto (g_0, ..., g_i, g_i, ...., g_n)$. Then $G$ acts by simplicial maps via $g(g_0, ..., g_n) \mapsto (gg_0, ..., gg_n)$ and therefore it also acts simplicially on the realisation $EG:=|\mathcal{E}G|$. In fact $G$ acts freely and $EG$ is contractible so that $EG/G$ is a model of $BG$.

He also explains with the bar notation how this space is exactly equal to the geometric realisation of the nerve of $G$ (even if Hatcher does not use these words). Explicitly: $[g_1|g_2|...|g_n]$ is the image in $EG/G$ of all the simplices $g_0\cdot(1,g_1,g_1g_2,...,g_1..g_n)$ in $EG$. The face maps in bar notation are $[g_1|...|g_n]\mapsto [g_2|...|g_n]$ for $i=0$, $[g_1|...|g_n]\mapsto[g_1|...|g_ig_{i+1}|...g_n]$ for $0<i<n$ and $[g_1|...|g_n]\mapsto[g_1|...|g_{n-1}]$ for $i=n$ which are exactly the face maps for the nerve $N(G)$. The degeneracy maps in bar notation are exactly $[g_1|...|g_{n-1}] \mapsto [g_1|...|g_i|1|g_{i+1}|...|g_{n-1}]$ which is also exactly the same as for $N(G)$. Therefore $EG/G = |N(G)|$ (not just a homotopy equivalency, a very canonical homeomorphism)


You should ignore simplicial objects at first, and just consider groupoids. In the following, you can let $G$ be a topological group such that $e\hookrightarrow G$ is a closed cofibration. All groupoids will be by default internal to $\mathbf{Top}$, even if not stated.

Consider three groupoids: $G$ itself considered as a groupoid with only identity arrows; $\mathbf{E}G$ with objects $G$ and a unique arrow between any two objects (thus the arrows are $G\times G$ with projections as source and target); $\mathbf{B}G$ with one object and $G$ the automorphisms of that object.

There are functors $G \to \mathbf{E}G \to \mathbf{B}G$. The first is the identity on objects, the second sends the arrow $(g,h)$ to $gh^{-1}$. Both $G$ and $\mathbf{E}G$ are (strict) group objects in $\mathbf{Gpd}$, and there is a free action $G\times \mathbf{E}G \to \mathbf{E}G$ of $G$ on $\mathbf{E}G$ by right multiplication after inclusion. The quotient by this action is exactly $\mathbf{B}G$, by the given functor. This can be seen directly.

Further, $\mathbf{E}G$ is canonically equivalent to the trivial groupoid $\ast$, in the sense that $\mathbf{E}G \to \ast$ has a canonical section and $\mathbf{E}G \to \ast \to \mathbf{E}G$ is canonically isomorphic (by $\alpha$, say) to the identity. So you can view $\mathbf{E}G \to \mathbf{B}G$ as being a principal $G$-bundle object with contractible total space.

Now the nerve functor preserves products, so there is a free action of the constant simplicial object on $G$ on $N\mathbf{E}G$, and moreover the quotient by this action is exactly $N\mathbf{B}G$, by the simplicial map $N\mathbf{E}G \to N\mathbf{B}G$. The natural isomorphism $\alpha$ gives a simplicial homotopy $N\alpha$, so that $\mathbf{E}G$ is a contractible simplicial object. So we have a $G$-bundle in simplicial objects with contractible total space.

Now do geometric realisation (not the thick geometric realisation), which preserves products, so that you get a free $G$-action on $EG := |N\mathbf{E}G|$ whose quotient is $BG :=|N\mathbf{B}G|$. The simplicial homotopy gives a contracting homotopy for $EG$. Local triviality of $EG \to BG$ is a bit harder, but possible. The open cover over which one trivialises has a subordinate partition of unity, by construction.

So $BG$ constructed by the geometric realisation of the nerve of $\mathbf{B}G$ is the base of a (numerable, even) principal $G$-bundle with contractible total space.