I remember at one point I was playing with this and there was a built in method but I cannot remember what it is nor can I find the thread where I may have asked that question and gotten it answered - but it seems to me that there was an API change that allowed a plugin to publish a function that other plugins could call (outside of calling an action). I seem to remember toying with this and getting it working and then a shiny object caught my attention....
It was something along the lines of plugin A would create a function, say testFunction() that would return - I think - a dictionary and plugin B could call that function and get the dictionary back. I recall it had a lot of limitations but I'm only looking to get plugin B to grab some very specific info from plugin A. For some reason I want to think it was a static function name that it had to be, you can't cook up your own name but it had to be implemented via a built-in function.