Although my DNS TTL is set to 300s I noticed with other (non Joomla) domain migrations that it was taking many hours for the IP address of the new server to propagate, and many hours more to be able for Let's Encrypt to pick this up and allow me to setup SSL again (apparently from a long queue length on the Let's Encrypt side).
Clearly until DNS has updated the 'old' site will be visible to users. What is the best way to allow this, but in a read-only mode rather than taking it completely offline? I was thinking of displaying a message to users, disabling the login module, and booting out all logged in users. This way I presume any users will not see any downtime, just a period when they are directed to the old site and get it read-only before their DNS is updated and they will see the new site (with the login module re-enabled).
Is it possible to use Site Transfer Wizard to do the actual migration? The transfer target URL would be the same https://example.com and would point to the old site until DNS is updated, so can an IP address be used here instead? Otherwise I could manually transfer and use Kickstart, but again can this be done before the DNS update and SSL certificate installation has occured? Going to https://example.com/kickstart.php would not go to the new server until this has happened, but having to wait for this would mean I can't achieve the no downtime I would like.
In short, is it possible to do a migration to a new server with the same domain and avoid complete downtime by keeping access to the old site in read-only mode in parallel to setting up the site on the new server?