So this ended up being rather simple. (well, simple after several aborted attempts).
I don't know of any drawbacks yet, but here's how I solved it -- generic code to follow.
In the NPC object, in the nifty afterAction(), I did:
if (topic1.curiositySatisfied && topic2.curiositySatisfied && topic3.curiositySatisfied)
And as for the timesToSuggest issue I stated above, that appears to be a conflict with some code I lifted from the Tour Guide. I don't know why it doesn't work for SuggestedTopics, but at least I know where the conflict is...
timesToSuggest = (ofKind(EventList) ? eventList.length() : 1)
You would think I would have remembered why I lifted that code...