composition of covering maps
Solution 1:
The condition in your problem is sufficient but not necessary. Taking $q$ to be the identity map gives rather trivial counter-examples. For a less trivial counter-example, take $X = \mathbb{R} \times \mathbb{R}$, $Y = S^1 \times \mathbb{R}$, $Z = S^1 \times S^1$, $q = u \times 1_{\mathbb{R}}$ and $r = 1_{S^1} \times u$, where $u : \mathbb{R} \rightarrow S^1$ is the universal covering map. Then $r \circ q : X \rightarrow Z$ is a covering map and $r^{-1}(\{z\})$ is infinite for every $z \in Z$.
In general, to get examples where $r \circ q$ is a covering map and $r^{-1}(\{z\})$ is not finite, the correspondence between covering maps over $Z$ (for "well-behaved" spaces $Z$) and subgroups of the fundamental group $\pi_1(Z)$ means that you get examples where the conclusion of the theorem holds but the hypothesis does not in cases where $\pi_1(Z)$ has non-trivial subgroups of infinite index (hence my choice of $Z = S^1 \times S^1$ above, so that $\pi_1(Z) = \mathbb{Z} \times \mathbb{Z}$). This correspondence also implies that the only covering maps from $\mathbb{R}_+$ to $\mathbb{R}$ are homeomorphisms, so they won't help here.
In the above "well-behaved" refers to some conditions on $Z$ that make everything work nicely. Connected and locally contractible would do or a bit more generally, connected, locally path-connected and semilocally simply-connected (which is what Hatcher uses). Semilocally simply-connectedness is explained in Hatcher. In, a note by Ethan Jerzak, you will find a proof that if $q : X \rightarrow Y$ and $r : \rightarrow Z$ are covering maps and if $Z$ is locally path-connected and semilocally simply-connected, then the composite $r \circ q$ is a covering map. So to get an example where the composite of two covering maps is not a covering map, you have to work with spaces that don't satisfy these conditions. The wedge of shrinking circles is about as simple an example as you can get of a space that is locally connected but not semilocally simply-connected. Jerzak's note gives a fairly detailed account of how you use that space to get the desired example of covering maps $q$ and $r$ such that $r \circ q$ is not a covering map.
There is an alternative to the shrinking circles given in Spanier's Algebraic Topology, Chap. 2, Example 2.8 that you may find simpler. For this, let $Z = S^1 \times S^1 \times S^1\times \ldots$ be a countably infinite product of circles and let $X_n = \mathbb{R}^n \times S^1 \times S^1 \times \ldots $, $n \in \mathbb{N}$. Then there is a covering map $q_n :X_n \rightarrow Z$ that acts as the universal covering $u: \mathbb{R} \rightarrow S^1$ on the first $n$ factors of the product and as the identity $1 : S^1 \rightarrow S^1$ on the remaining factors. Now let $X = \bigsqcup_nX_n$ be the disjoint union of the $X_n$ and let $Y$ be the product space $\mathbb{N} \times Z$ where $\mathbb{N}$ is given the discrete topology. Then the covering maps $x \mapsto (n, q_n(x)) : X_n \rightarrow \{n\} \times Z$ fit to together to give a covering map $q : X \rightarrow Y$ and the projection $(n, y) \mapsto y$ gives a covering map $r : Y \rightarrow Z$. However no open subset of $Z$ can be evenly covered by $r \circ q$, so $r \circ q$ is not a covering map.
Solution 2:
You could also look at the paper
J. Brazas, "Semicoverings: a generalisation of covering space theory", Homology, Homotopy and Applications, Vol. 14 (2012), No. 1, pp.33-63.
which gives a generalisation of covering maps, so that a covering map is a semicovering, but semicoverings, unlike coverings, satisfy the "2 in 3" rule: if $h=f\circ g$ and two of $f,g,h$ are semicoverings, then so is the third.