Labor sounds like a good idea but there are complications that come with it (which you can see if you look at all the current prison programs that have inmates take over normal jobs.)
The current prison work programs have prisonners work for something like 5 cents an hour (which they get upon their release), they're commonly used by some corporations as cheap, usually effective labor. The issue with this is that the roles they are fulfilling could instead be going to people who, you know, aren't in prison, or at least people who would be earning more than 5 cents an hour for the work that they'd be doing.
So on the one hand, you will get tons of free labor, but on the other, those prisoners are going to be detrimental to the people who could have taken those jobs (in your examples, construction workers would take a huge hit - construction companies themselves would flourish, what with all those cheap workers, but the usual workers would promptly get screwed out of a job).
So if you DO have prisonners do labor, I think it should be for something that no one would normally get payed for - such as charity work (I can think of nothing else, so that's my only example, haha).