More likely: it is just sitting there waiting for something that never happens.
Start by adding print statements in every line (just print 1, 2, 3, etc). Then you know at which line it hangs. Comment out that one line. See what happens. If it works, you know exactly at which point your code hangs. Then go and find out why. Start with the most suspected block:
if ( recheck == true) {
Serial.println('1');
const char *msg = "a";
Serial.println('2');
driver.send((uint8_t *)msg, strlen(msg));
Serial.println('3');
driver.waitPacketSent();
Serial.println("Sent message a");
}