Even if HEAD is currently pointing at an annotated tag's ref (e.g. HEAD = "ref: refs/tags/v1.0" and v1.0 is an annotated tag) peeling here when we prepare the updateRef is wrong.  We want to know what the ref currently points at during the update, which is the tag, not the commit under the tag.