Process you've described sounds right, but seems like a lot of work. The only time one might need to consider a 'dev' server is when testing new add-ons or something that might render the production site un-accessible, I would think.
Why not create a category called 'Development' and hide it, restore courses in production to that category? Leave them hidden as well.
'spirit of sharing', Ken