SQL sevrer DB migration plan
What sort of downtime do you have available for the migration?

There are a couple of ways that I'd approach this, as you're 24\7 and need to migrate 20TB of data, I'd be wanting to stage it beforehand.  You could either do this with logshipping, setup logshipping to your new server ahead of time and then when it comes to the cutover, take a final log backup, play it into the new server and bring online.

Another option and the one that I tend to use when migrating large databases is to mirror over to the new server.  When it comes to cutover, it's a simple job of just failing the mirror over and then then stop mirroring.  There are a few advantages of that approach, it can be setup days ahead of time, cutover is quick with no risk of data loss and it also preserves the log chain.

I wrote about using mirroring in a migration situation here, https://sqlundercover.com/2017/01/21/sql-mirroring-preserving-the-log-chain-during-database-migrations/

Just make sure that any logins you script across from the old server includes the SID, otherwise you could end up with a ton of orphaned users.  Not the end of the world but a hassle you don't need on migration day.