Последний шаг должен быть возможным - это зависит только от того, в какой степени вы хотите его реализовать. Насколько мне известно, он не должен требовать никаких настроек браузера. Вам просто нужно знать об ограничениях локального хранилища, которое, как я полагаю, на данный момент составляет 5 МБ (для большинства браузеров). Очевидно, вам нужно будет выполнить проверку таких разрешений, как указано в руководстве по Dive Into Html5, которое вы связали.
Самый быстрый и грязный способ - просто отправить запрос GET в ваше онлайн-приложение. Если он отвечает правильно, то используйте онлайн-версию. Если нет, используйте локальный кеш. Просто замаскируйте тайм-аут / неудачный ответ как экран «загрузки».