The Twins should proceed as follows:
1) Offer him a 2 yr/$14 mil contract. The Twins know what they have, the inconsistencies translate to 4-5th starter money. His ability to run a great string of innings probably boosts his value a little. When he declines that:
2) Look to trade him for anything of greater value than the sandwich pick. If that doesn't happen:
3) Make him the 1 yr qualifying offer. If he takes it, the Twins are only on the hook for one year. One year deals (even $12 mil ones) don't hamstring you. If he declines, the Twins get the pick.
It's that simple.
On a related note, does anybody know if there is a limit to the number of times a team can "offer" a player? For example, if the Twins offer Liriano the $12 mil qualifying offer, and he accepts, can they do it again next year? Is there a limit to the number of times they can do that?