Okay. It's not a bug. Seems like the code is
meant to work like that.

Apparently Hits-left-subsystem doesn't work the way you would think it does. If use the following SEXP
when
- <
--hits-left-subsystem
---Ship Name
---Turret 01
---90
I'd probably expect the game to trigger that as soon as the turret hits 90%. That's not what the game does though. Instead it looks at what type of subsystem this is (a turret) and then works out how much damage has been done to all the turrets on that ship and then gives you the average. What I'm wondering now is how come in 7 years of FREDding
I've never noticed this! 
Apparently though I'm not the only person confused by this one though. For instance look at this piece of FREDding from bearbaiting.
$Type: Primary
+Name: GUN 1b
$MessageNew: XSTR("Destroy Sathanas forward beam cannon 1", 1567)
$end_multi_text
$Formula: ( or
( =
( hits-left-subsystem
"Sathanas"
"turret01"
)
0
)
( is-subsystem-destroyed-delay
"Sathanas"
"turret01"
0
)
)
+Invalid
I suppose if I'd looked carefully enough I might have wondered why there was a completely redundant check for the turret being destroyed if the SEXP already checks if it has 0 hits left. Now it's obvious that James Agay tested the hitpoints first and after scratching his head/screaming at the monitor over why it wasn't working he just checked if they were destroyed too.
The calculations for engines are even stranger. The game will do the averaging normally until it gets below 15%. After that as long as any engine is running the game will report any of them as being at 15% even though the subsystem may even have been destroyed and the only engine left is at 1%
From the looks of it your ship was simply remaining in the mission until all of its turrets had taken 50% damage and then it could leave. I can't really start changing the hits-left-subsystem SEXP as it's been used in who knows how many campaigns which have no doubt been balanced on the weird behaviour it displays. I will however alter the text for it in FRED and make a new SEXP that works the way you would think it should work.