This is pretty easy to do with 4 fill
commands in command blocks: 2 for a fill clock (either a 20Hz clock or a single shot pair), and 2 to actually replace the wool. Add one more command block for a single tick button, and 2 more command blocks if your fill area contains air that you don't want command blocks in. I'll assume the latter, since it won't make a difference if there isn't any air blocks to fill initially. So, seven command blocks. This is what it looks like:
I'm using tilda notation in my command blocks to reference the 4x4x4 area with the wool, but it may be desirable to use absolute coordinates for production purposes. In any case, the commands in the command blocks are as follows:
fill ~2 ~1 ~ ~7 ~1 ~ minecraft:redstone_block
(set the stone to redstone blocks)
setblock ~-3 ~ ~ stone_button 2 replace
(quick reset the button, located on the right side of command block 1)
fill ~ ~ ~2 ~3 ~3 ~5 barrier 0 replace air 0
(replace the air with barriers, but there may be a better block to use, especially if players will be in the area)
fill ~-1 ~ ~2 ~2 ~3 ~5 air 0 replace wool 5
(replace green wool with air)
fill ~-2 ~ ~2 ~1 ~3 ~5 command_block 0 keep {Command:"setblock ~ ~ ~ wool 5 replace"}
(replace the air with command blocks)
fill ~-3 ~ ~2 ~ ~3 ~5 air 0 replace barrier 0
(replace the barriers with air)
fill ~-5 ~1 ~ ~ ~1 ~ stone
(reset the redstone blocks back to stone)
After hitting the button on block 1, we see the following:
As I said earlier, if your target area doesn't contain air blocks, then you can forego the two command blocks that set and reset the barriers. Simply remove them in that case.
keep
to replace the air with the command blocks. Hopefully I'll have time to try this out tonight in order to write an answer.