Transport delay added with API mode in XBee transmission.

I have a different problem different to the one I posted last week.

To re-iterate, I have three XBees (S1s) in API mode and I am using Andrew Rapp's xbee library . I have two XBees as end devices on Arduino Dues transmitting data to one XBee coordinator on a Arduino Mega. One of the XBees is transmitting a double at 50 (+/- 2) ms, and the other XBee is transmitting a set of three 2-byte ints at 20 ms.

As expected, I do receive the double from one XBee at 50 (+/- 2) ms, however the other XBee (that is sending three 2-byte ints) there is an added 15 ms delay to the transmission.

Here is the code for transmitting XBee:

#include <XBee.h>
/**/

XBee xbee = XBee();
unsigned long start = millis();
uint8_t payload[6];
Tx16Request tx = Tx16Request(0x1234, payload, sizeof(payload));
TxStatusResponse txStatus = TxStatusResponse();

void setup() {
  Serial.begin(9600);
  Serial1.begin(9600);
  xbee.setSerial(Serial1);
}

long newInc(0), oldInc(0);
int intOne(1234), intTwo(2345), intThree(3456);

void loop() {
  do {}  while (millis() - start < 5000);

  payload[0] = intOne >> 8 & 0xff;
  payload[1] = intOne & 0xff;
  payload[2] = intTwo >> 8 & 0xff;
  payload[3] = intTwo & 0xff;
  payload[4] = intThree >> 8 & 0xff;
  payload[5] = intThree & 0xff;

  xbee.send(tx);

  newInc = millis();
  Serial.print(newInc - oldInc); Serial.print('\t');
  Serial.print(intOne); Serial.print('\t');
  Serial.print(intTwo); Serial.print('\t');
  Serial.print(intThree); Serial.print('\t');
  Serial.println();
  delay(20);
  oldInc = newInc;
}

By commenting out xbee.send(tx), this additional delay is removed. Increasing the delay() does not change the added amount of delay (15 ms). Additionally, the other XBee sending the double has no added delay.

Where is this additional delay coming from and how can I remove it?

Regards,

EDIT: This additional delay is not static at 15 ms. It can range between 10-30 ms, and it seems to depend on how large the payload is.