There should be a ceiling with patents, where if you make 10x back of what it cost your r&d (or whatever 5x of your yearly revenue), the patent should just be considered expired no matter how much time passed.
It should never be an infinite source of money.