Hi Hamish,
Oddly, I'm looking to do something similar -- I'm looking into the feasibility of writing a "Check node's status in all pools" iRule that would be initiated from a node as a means to see if it's okay for it to start deploying new code/content.
I was hoping I'd be able to do this with an iRule, but it seems I can't get to the information of "What pools is node X a member of?" easily (or at all).
In your particular case, though, I think you could use a modified version of my approach. If you wrote an iRule that published the status of your pool(s) on the GTM, you could access that through a sideband connection on the LTM and use the result to do stuff.
The likely problem there is performance -- you'd be initiating a connection and parsing the results with some frequency, depending on what event was triggering the LTM iRule.
Maybe the best way would be to write the data from the sideband connection to a data object on the LTM along with a timestamp. You could check the timestamp on the LTM object and trigger the poll whenever the data got too stale for your liking.
Hope this helps.