I\'m trying to figure out the best workflow for maintaining a local copy of a github-hosted project (moodle) with customizations, while maintaining the ability to keep our copy
Yes, it makes sense. Although step #4 can be slightly simplified to git checkout master && git pull --ff-only upstream master.
git checkout master && git pull --ff-only upstream master
The --ff-only ensures that you don't get any merge commits in your pristine copy.
--ff-only