When failstorestart is reached, then TLogProviderBase.Restart is called from IncAndCheckErrors method and tries to terminate fThreadLog thread in Stop method. But IncAndCheckErrors is called from TThreadLog.Execute method resulting in deadlock( because fThreadLog.WaitFor is being called from the same thread).