Long caching headers can keep your javascript heavy web-app from being downloaded every time - the first time you hit the url it "installs" (by caching the files) and after that it loads in about the same time as a native app.
Only thing left is browser "splash screen"/loading image customization and the experience could be near native.
To add a splash screen during loading, create a 320x460 .png file, and then link to it in the header:
<link rel="apple-touch-startup-image" href="./startup.png" />
I've actually never tried this.Thanks for the info!