Hello,
If you need the business rule to work exactly as you have it configured, but not get into a loop is perform the Account Expires property update using a script that will not involve the Adaxes pipeline. However, in this case the operation will not be logged in Adaxes. If the approach meets your needs, here is the script:
$Context.TargetObject.Put("accountExpires", "%accountExpires,-1d,18:00%")
$Context.TargetObject.SetInfo()