I guess I am just not a huge fan of remote work in general though, so I have a hard time coming around to the idea that quick questions must go through a chat at all times.
It may be tiring for some people, but having what I call 'dark meetings' all the time encourages a policy where remote workers are shut out of the process.
This is pretty much the same as a default policy of "Don't IM me one-on-one, IM us all in the group chat", with exceptions for personal issues. I feel it's a good policy in general for two main reasons, first it increases the possibility that an issue is seen by the exact person who can respond to it, and second it discourages the formation of cliques of people who are doing their own thing which no one else knows about. Business requirements can get lost all the time with reasons like "Oh, I PM'd Jim about it, and I though he would mention Helen".
So relating that back to remote workers, most meetings (and at least in my office, most meetings means basically every single one) are not formal meetings where everyone is involved. It's one-on-one's in someone's office, or talking offhand at the break room, or passing in the hall, and almost never officially recorded. That's perfectly fine (and it works with us as we have no remotes), but it hurts when you bring in remote workers because, by definition, they are attending less 'meetings'. Previously working remote, and having supervised remotes, this is one of the greatest issues that they face.
So if the original question is 'How do you integrate remote developers?', then whatever solution that is presented will need to deal with these 'dark meetings'. My personal suggestion, and the one I've seen work the best, is just to try to encourage a culture where people recognize that they are talking about work, and to table that discussion until everyone is present (which in remote workers case is IM). It may sound dumb, but if everyone just said something like, 'Hey, this sounds like an issue Bob or Jane could help with, why don't we discuss that in dev chat', and that was considered Ok, then it flows smoothly.
That feels like it would be more on the individual team members not knowing when to reach out, more so than the in-person meetings causing a remote/local gap.
Great function you wrote there that does the wrong thing because you were too busy to be bothered.
I second the "remote-first" culture. Mixing on- and offsite developers is very hard.