Ah hah! I solved it.
I forgot that if the sum of the image layers has even a tiny part of transparency in it, it will use that for transparency information instead of the alpha channel. In this case, due to the resizing, the background layer must have had a slightly transparent pixel somewhere on the edge. Refilling the entire bg layer properly did it. 🙂