Well, I can't tell more about the application but one of the requirements is for it to work offline. Doesn't it cut out the web app option? Otherwise maybe I can set up a local http server on the device?
There is offline local storage in HTML5 [1]. It is supported by recent versions of iOS and Android. A local HTTP server should not be necessary.
Actually 5mb is not enough for our needs but if we put that aside, still there is a problem of where to load the Web App itself from when the device is not online?
One option is a mobile-optimized web application, with simple native apps wrapping your URL, one for each supported mobile platform.