Timeouts apparently don't actually work unless you use a test generator. Which makes sense in hindsight.
Finally got off my butt and started using EUnit.