There's no reason for boundChatListData to be an argument to useThreadListSearch as it's only included in a dep list where it's also not needed.
When boundChatListData updated it forced an update of threadSearchResults and usersSearchResults which led to listData getting recomputed THREE times. After this change it only gets recomputed once and causes ChatThreadList to re-render once.
(There's the "Focused" ChatThreadList and the "Background" ChatThreadList, so "halve" the logs above)
Depends on D9214