I tracked the slow down to when a Predicate was selected, not just added. So if I chose a predicate type other than ‘Select’ then Unity would reload all the resources to build the lists. Here is my refactored BuildQuestList and BuildInventoryItemsList methods, where I have removed 'Resources.LoadAll and it seems to have made the pause go away:
private void BuildQuestList()
{
if (quests != null) return;
quests = AssetDatabase.FindAssets("t:Quest")
.Select(guid => AssetDatabase.LoadAssetAtPath<Quest>(AssetDatabase.GUIDToAssetPath(guid)))
.ToDictionary(quest => quest.name, quest => quest);
}
private void BuildInventoryItemsList()
{
if (items != null) return;
items = AssetDatabase.FindAssets("t:InventoryItem")
.Select(guid => AssetDatabase.LoadAssetAtPath<InventoryItem>(AssetDatabase.GUIDToAssetPath(guid)))
.ToDictionary(item => item.GetItemID(), item => item);
}