Rather than attempting to take in the beauty of the Euclidean Algorithm all at once, consider first another algorithm.
Take any coordinate pair $(a_0,b_0)$ on the grid $\mathbb N^{\gt 0} \times \mathbb N^{\gt 0}$.
We are going to keep applying a function (algorithm) until this ordered pair finds itself on the diagonal, the set
$\quad \quad \quad \Delta_{\mathbb N^{\gt 0}} = \{(x,x) : x \in \mathbb N^{\gt 0} \}$
This is the function,
$$
F(m,n) = \left\{\begin{array}{lr}
(m-n,n) & \text{if } m \gt n\\
(m,n-m) & \text{if } n \gt m\\
\text{ not defined } & \text{if } m = n
\end{array}\right\}
$$
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= PSEUDO CODE:
$P_0 = (a_0,b_0)$
$n = 0$
$\text{Do While Pair } P_n \text{ in domain of } F$:
$\quad n = n + 1$
$\quad P_n = F(P_{n-1})$
$\text{End While}$
$\text{Print } P_n$
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Now as this algorithm runs, we have either the $1^{st}$ or $2^{nd}$ coordinates being replaced with a smaller number that is always greater than zero. When both numbers 'hit the diagonal' the process ends, and that might happen when they both wind up on $(1,1)$. If one coordinate hits $1$ it will be left alone and $F$ will keep decrementing the other coordinate by $1$ until it also 'gets there'.
So this 'one-step-at-time' subtraction algorithm will always end after $(m -1 ) + (n-1)$ steps (Euclidean division can always be done by repeated subtraction).
Now the Euclidean algorithm is traversing this grid in the same way, although several steps can be combined when doing Euclidean division.
When the point gets to the diagonal, the two coordinates are equal to each other and equal to the gcd of the starting integers $a_0$ and $b_0$.
Observe that here we don't 'end up with 0'. Why bother with the last subtraction? The coordinates are equal and that last subtraction can be skipped. Also, we could also have the algorithm stop when either coordinate gets to $1$, since the starting numbers would then be relatively prime and both coordinates are going to wind up at $1$.