I don't see the point of this. A git branch is already a kind of tag.
How about just
# rename branch to archive/ prefix to indicate it is archived
git branch -m foo-branch archive/foo-branch