Are there drawbacks/dangers that I am not considering?
-mouser
The way I've replaced servers was in 2 similar ways:
1) Build the new server on a different url, copying/converting the data as much as possible, then stop the original server(service), copy/convert the last differences, and bring up the new server on the original url. Reverting is as easy as stopping the new server and re-enabling the old.
2) Build the new server off-line on the same version of the software, then stop the original server, copy all data to the new server, start the new server and get it running, stop it when all is fine, then upgrade to the latest version of software, bring the new server it back on-line (mostly to major-upgrade the OS and application 'big bang'). reverting is again a stop and restart-the-old action.
Both require DNS changes, but setting the ttl to 5 minutes for a couple of hours before starting the procedures makes that a no-brainer.
These methods are closely similar, and the choice depends mostly on the application and OS involved (Even Linux 'upgrades' are sometimes done better by a re-install), and it will also test your installation and maintenance -documentation and -procedures (it was usually a 3-man operation when we did that, and everyone is/should be replaceable..., hence testing the docs and procs
)