Modify protected async functions to use try/with

Address a few of @dsyme's comments in #490.
Likewise, are these "callback" calls safe to be called from the thread pool (rather than the UI thread?)  Just double checking :)