The Task implementations catch exceptions internally and return null in that case, so that they can call handle() explicitly, thus not requiring the overriding of the onException() callback. However, the client code doesn't expect or handle null responses.
A simple fix would be to simply change the implementation to not catch exceptions, and handle them in onException() instead, with the requirement that the client code will call through to the super implementation.
Or we can simply switch to a Loader implementation which will provide a generic and centralized implementation, and fix many other deficiencies in the current implementation (e.g. lack of cancellation guarantees), and also add automatic management alongside the UI lifecycle and retention across Activity restarts.