The numFmt and the xf look fine to me. I tried creating a column default in Excel, and I got the style applied to the column as such, as well as the style stored in each cell
<cols>
<col min="7" max="7" width="9.140625" style="1" />
</cols>
Now, I assume it would make sense that if there was a column default that each cell wouldn't need to duplicate the information, however that was not the case, I had to store an "s" attribute for every cell, if I removed them, even with the style applied to the column, the number formatting was gone. I then removed the style="1" from the column, and it had no effect (of course not, what with each cell storing the style itself).
Does this mean that the concept of column defaults don't actually work? Or maybe that the style of the column only applies to undefined cells, while if a cell has been defined it must store its own style index?
Hopefully something in what I wrote here will help. I'm not really sure what is wrong in your file because based on what you wrote, it looks like it should be fine. Does the fill (fillId="2") part of the xf work?
Oh, and ignore the cellStyleXF's, if I recall correctly they don't work at all (there is another thread in the forum about that). Use only the cellXF's.