Personally I like to use the physics behavior. It sounds crazy, but it works.
-Make the enemy physics hitbox a circle
-Set the enemy physics iterations to something like 2 or 3
-Set world gravity to 0
-To move them toward the player, use Set Velocity -> cos(angle(Enemy.X,Enemy.y,player.X,player.Y))*Self.speed for X and sin(angle(Self.X,Self.y,player.X,player.Y))*Self.speed for Y
Hope this helps!
EDIT: I am now just seeing you already tried Physics and it was laggy, sorry about that. Although you could try to reduce the physics iterations of enemies, this will make them update less and increase performance.