For regular backups I’d go for option 1, using PostgreSQL’s own native tool, as it is probably the most efficient.
I would argue that option 2 is primarily concerned with creating the tables and loading initial data so is not suitable for backups.
Option 3 can be used for backups and would be particularly useful if you needed to migrate to a different database platform since the data is dumped in a non-SQL form, i.e. JSON understood by Django.
Option 4 the plugin appears to be using db’s own backup tools (as per option 1) but additionally provides help to push your backups into cloud storage in Amazon S3 or Dropbox