So I've been trawling through the RadioHead documentation and I can't find any option to tell when the radio has finished transmitting, but I'm assuming I've just missed it.
I've found the "waitPacketSent" function that blocks until sent (why a library has any blocking functions I still don't understand), so there is a way for the AVR to tell when the radio has finished transmitting, I just can't find a non blocking way of doing it.
Oh and I'm using a LoRa radio with the rf95 library, so on super slow and long range transmissions (km's) it can take a couple of seconds to send a data packet. So having the program hang for a couple of seconds is both daft and wasteful of power.