What are the best practices to manage site mirrors with Drupal?
It always a big deal with Drupal to have a Staging and Production environment. Because you can't just make a simple mirror.

Because you are going to do Site Building in your Staging area, you can't export the database and import it in production, because of user content generation. The inverse its also a problem, as you have done some Site Building.

Of corse you have some tools like Selinium IDE that helps you to save your configuration and that you can use after in production.

The others solution its to move everything, configuration I mean, into files. You've couples of modules that can helps you. First of all, Features that allow you export configurations as feature and you can enable it easily once on production.

For variable and blocks, you've Strongarm and Boxes. Finally the hook_update_N will help you to archive the last goals.

For the code part of your project, I guess nothing is better than versioning, like Subversion or Git (goes for Git as it's use by drupal.org). And for the workflow model I can just advice this one that works pretty well in our organization.