It may have something to do with the FS_FindWrap parameter. The default is true, so the find always wraps around and I wonder if this is what causes the loop. Here is the description from the FDK Reference Manual.
A BoolT flag that determines whether the find operation will wrap when it reaches the location where the search began. Default is True; the find operations wraps. If False, after reaching the location where the search began, the find operation returns an empty F_TextRangeT and FA_errno is set to FE_NotFound.