Move a Postgres 9.3 database to a new server and update to 9.6 with minimum downtime
You can't do this, because WAL archive can only work with physical copies, while pg_dumpall and restore generates a logical copy.  Also, WAL format is not compatible across major versions, so you couldn't re-play WAL from one version to another anyway.  (You can do something like that with logical replication, but that doesn't exist in version 9.3, and is a rather advanced topic requiring extensive design and testing in the newer versions.)

Is it really necessary to move versions and servers at the same time?  If something goes wrong during such a double migration, you've just created a big diagnostic mess by changing two major things at the same time.

The lowest down-time way to move versions (other than logical replication) is to use pg_upgrade -k.  This requires you to have both old and new versions installed on the same machine simultaneously.

The lowest down-time way to move machines is to set up streaming replication; and wait for it catch up (as much as it can get while the master is still active), then shutdown all user connections to the master, wait for all WAL to replay to the replica, and promote the replica.