I'd rather have this method always return a Deferred, so using `maybeDeferred` while calling the user function.  It takes a good bit of following back chains of function calls to find the `yield self.canStartBuild(..)` in `botmaster.py`.  And in general, while I like having user-supplied functions able to return either a Deferred or a normal value, I'd prefer internal functions to always do one or the other.