I can’t understand why iMessage doesn’t at least try (I am assuming anyway) to just directly contact another device over IPv6 if available - would need to go indirectly via server the first time to ask the other end to pierce its firewall, that’s the way I think it would have to be done. But after that has been set up, I don’t see any need for long delays, provided both ends are contactable, yet there have been countless cases where I know that the Mrs Weaver is on the network because I can access her machine immediately via other direct methods.
If iMessage is not delivering the goods, and I am desperate to get some help, I now use Find iPad or whatever it is called and get it to remotely command her machine to start making alert noises, and that gets her attention if she has put her iPhone or iPad down somewhere. This started when she lost her iPhone, we used that app and tracked it down to a bed of nettles with the help of a very good detailed map at first and then the pinging noise.