The second image shows that the first iteration of the search is consuming 80% of the cost. That's great, because it means low hits on the very large point table. The whole run is spending 11% reading hashes from the point table because of spend hashmap conflicts. But that means by increasing the bucket count this might be materially reduced. It's a tradeoff, because that puts a lot more into RAM. As it is the table heads read used during sync are about 9GiB. Since they are random access, they spend most of their time in memory.
(edited)