Whereas if I have to wait for them to become free to talk to me, I have to keep all the context in my head, which interferes with my work, because my mind has a limited amount of "cache". Also, I now have to be on constant semi-alert waiting for the call because I don't know when they will become free. That makes it impossible to concentrate on any task too much. I am certainly not getting "into the zone" on anything.
Cognitive load is a real thing, do not waste yours or someone else's.
To me IM replaces the “I could spend an hour searching for something or just pop up at your desk and ask”. It’s better because I can, like you say, defer answering for a few minutes.
In my previous job we had Slack, with General and Random channels. The discussion often went awry in these. Later we decided to create channels per team and more or less forbidden non work related chat. This basically fixed all of our problems with lost productivity and random pokes. Since people were not constantly on chat for random reasons, they did not use it for trivial work related stuff either.