Heisenbug slain.

Looks like the issue was threads starting and finishing before the
resume function had registered them in the atom. Which totally makes
sense since the first thing they do is check if they're registered.
Catch errors a little betterer