I think different patent lengths for different industries would do much to improve the current insanity.
And the maximum payout on violating a patent should be the remaining profit to end the patent.
Differences between industries then look after themselves.