Hello,
The loop appears because the value set by the Modify the user action meets the conditions specified for the Business Rule. To avoid this and still set the Account Expires property as desired, you can use the Run a program or PowerShell script action with the below script instead of the Modify the user action. The script will update the Account Expires property directly in Active Directory, thus the Business Rule will not trigger again and there will be no corresponding record in Adaxes logs.
$valueToSet = "%accountExpires,,17:00%" # TODO: modify me
# Update the user
$Context.TargetObject.Put("accountExpires", $valueToSet)
$Context.TargetObject.SetInfo()