ArcLight,
I like what you did ...

... but I have a suggestion or two.
I've been reading the book "Black May" and it has very detailed descriptions of merchants getting torpedoed from the captain's perspective as well from the U-boat. From most (if not all) the merchants that were torpedoed, they ordered the engines stopped ... even with one torpedo hit. This was done not really for damage asessment but mostly to allow the ship to stop so they can lower the lifeboats and toss the confidential doc's overboard. Apparently, human lives were more important than sitting on a torpedoed ship in the middle of the atlantic.
With this in mind I have a few suggestion's ... This is theory and not tested.
The first thing to do is create three more states (using 2,3 and 4 ie strategy StateDmgAssessment2(Ship) ) that have a precond of
Ship:IsType( MERCHANT ) == true. This will ensure that warships continue to chug along and not think about stopping the ship to lower life boats.
1 ... Under your new state "strategy StateDmgAssessment2(Ship)" you can set this to read the changes ...
Ship:GetDamage() >= 0.25 and Ship:GetDamage() < 0.45
Ship:SetThrottleRatio(0)
Ship:SetWeaponFactor(1)
2 ... Under your new state "strategy StateDmgControl2(Ship)" you can set this to read the changes ...
Ship:GetDamage() >= 0.45 and Ship:GetDamage() < 0.65
Ship:SetWeaponFactor(0.2)
3 ... Under your new state "strategy StateDmgAssessment3(Ship)" you can set this to read the changes ...
Ship:GetDamage() >= 0.65 and Ship:GetDamage() < 0.85
Ship:SetThrottleRatio(0)
Ship:SetWeaponFactor(0.2)
You could add a "WaitAction" time to the first damage state(25-45%) if you think it can still get under way after some time ... but for the most part, they were all scrambling topside to get off the ship.
Now, as far as the player knows (assuming HP bars are OFF), when he hits the merchant it will stop (like is should) but he doesn't know if it's abandoned or merely performing damage control. He can come back later and finish it off (like they did) risking a surfaced gun attack. But, the player can basically get an idea based on the fire/smoke volume anyway.
Just some ideas ... it might spark up a new idea later on.
Keep up the good work!
Rob
EDIT NOTE .... Note that #2 above "StateDmgControl2" doesn't change the throttle to (0) but keeps it at 0.2 ... perhaps it should read 0.1 or 0.05 or maybe 0 with a WaitAction.