To get a subcollection of af collection use
Set subcoll = collection.FTSearch(query,0)
For you second question
I have no problem with session.UpdateProcessedDoc
But keep in mind that an agent will allways run on all
documents again when restartet.
By the way if your agent often takes more than your max agent run time (90min) then consider modifying the code and do a check for how long the agent have run and do a clean stop in the loop on the collection, when time is near the max time.