See data in bug 878677 - essentially all of the work under dbInit() in FormHistory.jsm still occurs synchronously on the main thread. We should get rid of that, if possible.
We should just use openAsyncDatabase and then fix any consumer to be async. Migration and schema may be funny to handle, though Task.jsm may help handling errors. The even better alternative may be to switch to Sqlite.jsm, though that may require slightly more refactoring.