Complete backup solution
Will this work?
Yes
Is there a smarter method?
Drush + drush make
Drush is a command line tool that you can use for various things, one of them is to create a site. With a drush make file, you can save all of the modules you use (including version and even patches applied to them if needed). Once create you could recreate all of the modules by doing something like this:
drush make --no-core --contrib-destination=[path to the contrib folder like sites/all] [path to the make file]

You can read more about drush and drush make which has documentation about usage.
Also backup and migrate will or can add a drop syntax, so that it automatically drops tables when restoring the database. So using it, you wont need to wipe out your database completely. If need be, you can truncate it so you wont have to setup permissions again.