Owning a public domain is a must-have for a proper self-hoster. Buying one is cheap and you can really come up with some nice and creative names. You could even go for a random generated string or number, if you prefer.
You must have a domain name because you need it to get HTTPS to work, using SSL certificates.
If you have read the this page, you should know why you need at least one external server.
I will assume you have two external servers with public IP addresses:
Whether they are commercial servers, rented hardware, virtual servers or some box you plugged in in secret at your uncle workplace, i don't care. All you need is a public IP with a Linux operating system and the subdomain names that you can point to it.
Get whatever domain you can, the level doesn't matter but you must be able to add subdomains to your domain.
You need to point all your subdomains to your external server IP address, using an A record is a good idea, but any other way (CNAME, etc) is just fine.
So, assuming you have the following subdomains associated to your home services:
Any new subdomain which needs to point to the home server, will need to be added to your domain DNS management to point to the 99.99.99.99 ip.
In case of a serious blackout of the 99.99.99.99, or the ISP1, you can still access your home trough 77.77.77.77, and you can, for prolonged blackouts, switch over your DNS records to this IP.