I think I understand now. Let me reiterate what I think you are saying: you have a group, called 'test1' for instance that has a nested membership of another group called 'foo'. Changes are happening inside of 'foo' and indirectly changing the membership of 'test1', and you do not see the updates coming across on DirSync. That is expected based on your initial filter.
The solution of course is to open your filter up more. Provide the initial filter as all groups. Next, filter only for changes for 'Test' groups and do not update the cookie yet. For each 'Test' group, do a recursive search for each nested group and maintain a hashtable then. Finally, use the same DirSync query again (the one you didn't update the cookie on - just change the filter now) and look for all the groups inside your hashtable. This will tell you which nested groups were updated.
Definitely more complicated. Of course, if you just designed the solution to work with all groups (not just test groups) and then later filtered out the ones you weren't interested in, it might be less complex.
Ryan Dunn
Extemporaneous MumblingsThe .NET Developer's Guide to Directory Services Programming