This is an XBee3-TH running ZigBee 3.0 firmware 100A (hardware 4244).
I believe I've figured out what is happening. The call to xbee.sleep_now() is truncating the timeout value to 16 bits. If a larger value than 65535ms is entered, the actual timeout is just the least significant 16 bits, while the overall time jumps forward by the full timeout requested. A similar error occurs in the computation if pin wake occurs.
For example, xb.sleep_now(80536, True) returns 80543 after exactly 15 seconds. The ticks_ms() function returns values consistent with being advanced by 80543ms.
Looks like this is a bug.
I also notice a difference in the behavior of pin wake. In 1006, it was falling edge sensitive while in 100A it is low level sensitive. I'm not sure if this is an intentional change or not. It is not mentioned in the release notes.