One of the engineers here might be able to tell you more, but I'll tell you what I know about this having encountered it a few times. InfiniteLoopTimeout is DirectSOFT's internal loop timeout value as a protection against infinite loops that can cause crashes. This number is the maximum number of loops allowed to do an internal operation in DirectSOFT. Under normal conditions, this number will never be reached. But in cases where there could be very large databases, this number may need to be increased to allow DirectSOFT more loops to complete a certain operation.
Are your documentation files (.ESD, .ESX, .LCD, .LCX, .LDA, .SCD, .SCX) abnormally large? You may be reaching this loop value due to a corrupt database already.
(See DirectSOFT FAQ0040:
http://www.hosteng.com/FAQFiles/DirectSOFT.htm#FAQ0040)
Also, if the value you give InfiniteLoopTimeout
"gets overwritten with the old value" this may be because you are using WinVista or Win7 and have the UAC (User Access Control) turned on.
(See DirectSOFT FAQ0204:
http://www.hosteng.com/FAQFiles/DirectSOFT.htm#FAQ0204)