Hi,
If you refer to the manner in which you in CRM on-premise can take a backup of a CRM database, restore it and redeploy it in the deployment manager, no, there is not currently a similar way of setting up a similar copy of an entire organization.
As I see it, there are two possible options for you.
1. Request a backup of the database from the CRM operations support. Restore this database in an on-premise/partner environement.
2. Try to get some Microsoft entity like Microsoft Consulting Services to help you out in buying a new instance of CRM and then doing a backup-restore-redeployment on that instance. Not sure you can do that, but if you are/have a large enough customer you might be able to get their attention and they might be able to do this for you.
As far as a best practice, I Think that 1 is as far as it gets. The problem is that doing development in an onprem Environment is different from online since Polaris release, making that a bad method for development for online. Otherwise it is a good practice.
Good luck!