Firstly. let's clear up a little confusion.... A bulk of your post talks about DNS domain names, but in one place you bring IP addresses into it.
.."if your iis or Apache server had an IP address of 18.104.22.168, and your domain controlers had IPs of 22.214.171.124"..
You would normally continue to use private addresses (from the ranges 10.0.0.0/8, 192.168.0.0/16, or 172.16.0.0/12) for your network. Even if you are publishing resources from your private network to the outside world, you would still do this - for any resources like that, you would end up with different IP addresses on the inside and outside, so we would need to deal with that after the fact....
The trickery would be how you deal with DNS. You would have two separate DNS infrastructures.
Firstly, A normal external DNS setup (primary and secondary DNS server hosted on ISP DNS servers and containing ONLY the DNS records that you wish to publish to the outside world (MX, www, owa, autodiscover etc) This is exactly as you would have if your internal and external dns names were different.
You would also have your internal DNS zone on your internal DNS servers. This is almost exactly as you would normally have it if your DNS names were separate.
The "almost" refers to a very few records that refer to externally published resources. Any public resources that need to be accessed from the internal domain need to be included in this copy of the zone (for example www ), and (depending on how you want things to work) you may point certain records to the internal or external IP address of the resource ( owa / autodiscover etc). DNS records that have a Windows or AD special meaning should ONLY point to internal IP addresses ( ie myexchangeserver.test.org = 192.168.1.10 but owa.test.org =126.96.36.199 )
The other important point is that internal servers/workstations etc ONLY refer to the internal DNS servers for name resolution NOTHING else. No exceptions!!! (really!)
So how to Internal machines resolve outside names (for other domains)? Set up forwarders on all internal DNS servers. Use the ISP DNS resolvers (the DNS servers specified with your connection but not necessary holding your external domain).
So... Internal machine only talk to internal DNS server - these know how your AD domain works (and a little info about how to access things like your external web server). External access (anyone outside) just see public DNS information as normal...
This also works for having your internal AD domain as a subdomain of your external name.. The Internal zone is ad.test.org, and the external just test.org... The external version needs tow nothing of the internal version - no delegations, nothing....
All of the above is only really worth doing if you are setting something up from scratch.. Changing an existing internal domain would be very difficult (if possible in your case at all) don't even consider that!.