My lawyer explained this to me in detail some time back which I had posted here.
The 3 Year extension is based on the I-140 and the 1 year is based on Labor.
So if your I-140 is clear you have both the options.
You can go for the 3 year extension based on the I-140, but the only catch here is that in case you also happened to have applied the 485 based on the I-140 and for some reasons the 485 is rejected, then the 3 year extended H1 based on the I-140 also automatically becomes void. And as a result you will go out of status.
This is not the case with the Labor based 1 year extension. In this case even if the 485 was rejected the Labor still remains valid and hence the H1.
Very few people know about this. But as the 485 rejection is rare therefore the 3 year extension is a valid option. Also if you are stuck because of retrogression and not been able to apply for 485 then also the 3 year extension is valid.
neocor