The easiest way to do it is probably:
1. make a dictionary called 'storage' or something
2. replace all webStorage references with references to that dictionary (or, if you really want to go the extra mile, replace them all with function calls that then reference the dictionary)
3. save/load the entire dictionary from LocalStorage at specific times (e.g. on startup, on exit, at the start/end of every level, etc).
That way, you can keep using storage references without needing to worry about the whole async issue.
Of course, if you are using webStorage to store MB's of information, this approach might not be the best.