The issue with perverse incentives and scrapping ships with negative traits is more an issue for the first trait that a ship receives, not so much later ones. This is because: 1) its always the strongest trait, so will keep getting worse.
Disclaimer: I haven't tried this mod and have only been following it via this thread.
An idea to specifically handle this issue with negative traits would be to make the first traits not always the largest, instead picking a random trait to enhance upon ranking up. To do this though, you would have to allow for traits to skip ranks, which may feel too unpredictable. I believe the logic for this would be:
- For each rank with an empty trait slot to be filled (starting from the highest rank), pick any current trait of lower rank and enhance it (opening its former slot to be filled).
- Repeat step 1 until no slots remain to be filled.
There would definitely still be a point where scrapping the ship is for the best, but it should be after a few more traits are added so that you get a better overall picture of what the ship would/could look like, instead of being sure of its one greatest flaw. A potential downside would be seeing a Paragon that you've been building up for a while have a minor quirk of reduced range turn into legendarily reduced range. Applying similar limitations from choosing new traits to choosing traits to enhance should make this more reasonable for players, but require more data tracking. Without knowing how your code is set up, I would guess that having "normal", "excellentOffence", "excellentDefense", and "excellentOffence/Defense" buckets of XP gained would allow you to track overall success with a ship for the current selection limitations.