That worked as listed in the Codeshare example on 9.4.4. Are you defining the external class as a type 'string'? Can you try manually editing the class file on the filesystem and escape the backslashes as listed below:
class maint.index.html.class {
type string
filename "/var/class/maint.index.html.class"
}
cat /var/class/main.index.html.class
"Maintenance pageSorry! This site is down for maintenance.",
And no, if you're redirecting the client the address bar will be updated with the new location. You can pick whatever URL by modifying the redirect location, but you can't hide the change with this type of implementation.
Aaron