In your example the target for the turret is the turret object itself.
As a result, "Unit->On Turret target acquired" event works unpredictably because most of the times turret acquires itself as a target and stops scanning for other targets. This is what's causing all kinds of problems.
And, I'm guessing, no "advanced turret" plugins will help here.
You need to create two objects - Unit1 and Unit2.
Set Unit1 as a target for Unit2 and vice versa.
Add them both into a Unit family, define all variables/behaviors/effects on the family and everywhere in your game you can continue to refer to Unit as one object. Only it will be a family instead of a sprite.