An interesting / novel way to curb the issues with the patent system would be to cap the maximum monetary benefit a company may get out of a patent based on the R&D expense involved in coming up with the patent. For example, if the expenses involved in coming up with invention is X (including filing fees?), the patent may be set to expire once the company makes say 10X out of it. If it takes $2 to come up with an idea, then the maximum worth of that patent under this example would be $20, which would still be a good return on the investment.
Of course, tracking this would be painful, but so is the current state of the patent system! On the very least, this may be applied to limit awarded damages during litigation.
Another complication comes from the number of patents involved in a single product. How to tell how much revenue maps to each patent?
On the other hand, this does capture the intent of the patent system well -- Encourage research and development investment while avoiding frivolous cases.