Once you kill a Forgotten Beast you should have plenty of bones to train up a bowyer pretty well. Last fort I had was swimming in Bone Crossbows. Elves trying to raid my steel clad Dwarves riding on horses, boars, and bobcats is just ridiculous the amount of materials I had.
Like others have said, caps are a shaped item, so without removing that tag in the raws you can't wear another shaped item.
A nice light suit for a militia/civilian outfit would be metal high boots,bones greaves or leather leggings, mail shirt, Leather Armor, metal helm, and metal gauntlets, and a wood shield.
Metal boots, gauntlets, and helmet are very light for the protection they offer. A mail shirt by itself will help you not get chopped up, Leather Armor is cheap and easy so it's sort of icing on the cake as far as upper body goes. Bone Greaves are technically better than Leather Leggings would be, if they're made from the same animal, but due to a minor bug you can't specify bone armor in a squad's equipment. So, if you had greaves listed you'd have to have no superior greaves available for upgrade.
If you're looking at full time professionals a full suit of plate is tops. Start from the militia set up and as you get the resource upgrade your greaves and breastplate. Shield Material isn't all that important defensively, so don't worry about that. Offensively they may try and bash with it, so heavier shields means more bashing damage for slower Dwarves. You could also add in cloaks and hoods to the sets. It's a little bit extra protection, and the mental image is awesome. Even better mental image if you have access to sliver barb and dye the cloth cloaks and hoods black.
If you can only have one metal armor piece on a Dwarf I'd make damn sure it was the helmet. Enemies go for the face every chance they get, especially if your guy gets knocked out somehow. I had a Dwarf stunned and repeatedly bitten in the head by a GCS survive simply because of his helmet. I'm not sure a leather one would have saved him.
I personally mod in a chain coif so I don't have to make more hoods.
ITEM_HELM:ITEM_HELM_COIF]
[NAME:chain coif:chain coifs]
[LAYER:COVER]
[ARMORLEVEL:2]
[COVERAGE:50]
[LAYER_SIZE:10]
[LAYER_PERMIT:100]
[MATERIAL_SIZE:2]
[HARD]
[METAL]
[STRUCTURAL_ELASTICITY_CHAIN_ALL]
add ARMOR:ITEM_HELM_COIF] into ENTITY_DEFAULT.txt under [ENTITY:MOUNTAIN] or you won't be able to use it.
I think civilians may try to claim 'em too cause their layer isn't armor, not sure.