The HTML5 features we use are local storage and offline support. The most interesting thing about implementation is that we use a queue to do all the updates (this queue is stored in local storage along with all the other data). We also have a special sync API that manages stuff like temporary ids, duplication protection, fetching only new data etc. This API can be seen here: http://todoist.com/API/help/sync
I am currently doing a big technical blog post about the challenges and our experience of doing a HTML5 web-app. But you are very welcome to ask any questions here!
I have not read about anybody doing something similar at a large scale - so please shoot me a message if you have done something similar, my email is in my HN profile.