Let's suppose we have a Bézier curve $\mathbf{C}(t)$ of degree $m$, and denote is its control points by $\mathbf{P}_0, \ldots, \mathbf{P}_m$.
A cusp can occur only at a point where $\mathbf{C}'(t)=0$.
But we can also consider $\mathbf{C}'(t)$ to be a Bézier curve; it has degree $m-1$ and its "control points" are $\mathbf{P}_1 - \mathbf{P}_0, \ldots, \mathbf{P}_m - \mathbf{P}_{m-1}$. Pedantic detail: I put the term "control points" in quotes because these things aren't really points, of course, they are vectors. You can identify them with points by locating them at some common origin. The "derivative curve" constructed this way is often called the hodograph of the original curve.
So the original curve can have a cusp only if its hodograph curve passes through the origin. In the answer provided by @Fang, you can see that the hodograph curve is a quadratic that passes through the origin at $t=\tfrac12$.
As you remarked, finding places where $\mathbf{C}'(t)=0$ is a nasty root-finding problem that can only be solved by numerical methods. But if $\mathbf{C}'(t)$ is expressed in Bézier form (the hodograph), as above, then there's an obvious useful fact available to us: the curve $\mathbf{C}'(t)$ can not pass through the origin if the origin is not contained within the convex hull of its control points.
This suggests the following algorithm: construct the hodograph curve and then repeatedly refine it in such a way that the control polygon gets closer to the curve. There are two refinement methods that will work: either subdivision or degree elevation. Subdivision is probably easier, numerically, and converges faster. Continue the refinement until you get a control polygon that doesn't contain the origin, or you run out of patience. If you refine a great many times, and your control polygon still contains the origin, then the hodograph must pass very close to the origin, and this means that the original curve has something very close to being a cusp.