One suggestion would be that each tick only one enemy updates path.
You can create variable "currentEnemy", every tick add 1 to it, when it is > number of enemies set it to 0.
And then each tick
System.pick nth instance (select enemy and "currentEnemy" as instance number) - update path.
That way each tick only one enemy will look for path and your CPU will be used evenly.
Of course, that mean less enemies = better pathfinding.