Radio code appears to be interfering with other functions.

I think you are on track with the skip the input after transmission since the NEW PID routine does not require a fixed time interval (delta T). It only requires an instantaneous reading to calculate the next PID output. The minimal delay will not affect the calculation in any way

Try adding This:

// up top
bool Skip = false;   
// ----------------------
// in void exchangeData() when you are successful
Skip = true;
//-----------------------
// in void readRpm()

   if(!Skip) { //PID only needs an instantaneous reading and so if we skip a few no harm done since Delta T is no longer a fixed value
      if (!myPID.Compute()) Serial.println(); 
      analogWrite(PWMpin, Output);
   }
   else Skip = false;

Glad to be back, I missed the shift to this thread and I was hoping all was going well for you. It looks like you are close to completion. let me know if this works.