This is why it seems to me that the core problem with the current patent system is that it's too cheap to obtain and hold large patent portfolios.
There's an analogy here to land ownership. Land is a public good. It is owned collectively by the nation-state that contains it, and the people rent exclusive rights over parcels of land. I'm talking here about the difference between allodial title (typically owned by the state) and fee simple title (owned by individuals). We do this so that the owners have an incentive to use and improve it, and everyone benefits when it owned by the people who can best do so.
Patents are similar in many ways, since inventions are also a public good. That's why patents exist in the first place: to promote the advance of our technology for the benefit of all, by granting exclusive rights to the use of a technology. And, like land, you want patents to be owned by the people who can best use it.However, in order for the system to work, there needs to be a cost to holding rights to the property to encourage people to sell the rights to someone else. With land, this is property tax; land owners have to pay a percentage of the land's value each year for the continued right to use the land exclusively.
We need a property tax for patents. Patents should have an assessed market value, and a patent owner should have to pay a percentage of that value yearly as 'rent' on the exclusive use of the invention. If they no longer feel that it's worthwhile to pay that tax for the benefit they get from holding the patent, then they can sell it to another party. It could be (and probably should be) a closed system, where all taxes collected should be put into a fund that the government uses to buy patents itself. When it does so, the patent gets returned to the public domain, and anyone can use it from then on. In that way, you may be able to get rid of patent term lengths.