Check the cb before calling on timeout.

I ran into this particular issue in some tests. It is an odd race condition, but it cropped up consistently. I note that you check the cb's existence in several places, just not this one.