40 Mbps is the amount of data that can be moved in one second; the difference between 20% saturation and 90% saturation should have negligible impact on latency. The bottleneck would occur if you OVERsaturate the line (ie. trying to pull more than 40mbps down) because then the packets would need to take turns coming in and possibly even be re-sent from the source if the latency is so bad that those packets are wiped from cache on routers or switches. (FUN FACT: this is basically how a DDOS attack works, too many packets are being thrown at your network and your router can’t say “no” fast enough to the bad data so latency approaches infinity and the good data ends up getting buried as well)
I ran one for a few months until I woke up one morning and it wasn’t working. As I was the only person using it, I didn’t bother to troubleshoot and just signed up for an account at lemmy.world.
If you want to run your own I recommend you check out the ansible install route. It’s really simple and straightforward once you wrap your head around ansible.
Cloudflare has dynamic DNS as well as a client to run on your server that will update automatically for you.