Why do you want to alias all external names to a .fake domain? I don't see what advantage that brings. If you aren't connected, then you can't reach them. If you are connected, then the FQDN work fine. Of course you can't use domain names for forwarding; the DNS server can't resolve the name without knowing the IP address.
The standard way to do intermittent connections is to rewrite the /etc/resolv.conf file to use the local DNS servers. If you want to use a local caching nameserver, then the connection scripts rewrite the forward section of /etc/named.conf.