Getting pg_dump and pg_restore right for postgresl (9.3.10)
It's perfectly safe with especially with --serializable-deferrable however you're not answering the real question which is what do you do with data inserted while you're dumping and moving the database. The best way, in my opinion is the hard maintenance window.
I would use -c.
an inconstant backup or a failure to load because of a missing extension causes restoration errors, though I don't think you'll have that problem.


Since you know Azure supports 9.6 (they say so here), I would


back up the data directory
back up the database
upgrade to 9.6 locally
run it and make sure it works.


If it works, pg_dump and move move to Azure.