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.