You must add to the trigger a condition for all the convoy being dead. Say your convoy vehicles are called c1,c2,c3,c4 then you would add the following to your end trigger condition &&:
({alive _x} count [c1, c2 ,c3, c4]) == 0)
This will only be true if all vehicles are destroyed. Just remember that sometimes a vehicle can look dead, but not be with canMove being false. You should really put this condition in its own trigger so that you can display a message letting the player know the obj has been completed. In this trigger the following should be in the OnActivation:
ConvoyDestroyed = True; hint "You have destroyed the convoy";
Then to your end trigger add &&:
ConvoyDestroyed
Finally, for good measure, add the following line to your init.sqs:
ConvoyDestroyed = False;