Fix missing context bug in VaultLoader listener
Is a specific instance of a more general fault where context could be
lost during async operations. This case was noticed because the recently
added code to store and flush data to shared storage takes long enough
that Flutter has an increased chance to destroy the old context and this
actually happened on some devices. I've investigated other instances
of this problem and either developed a more defensive algorithm or
commented when it is uncertain whether the problem is applicable or not.