As many RFM9x projects are likely to be in a remote location, and running for long'ish periods, the accuracy of time.monotonic() will over time degrade into the seconds range, making send_with_ack, and receive timeouts longer then desired.
self.ack_wait = 0.5 would effectively become self.ack_wait = 1
self.receive_timeout = 0.5 would become self.receive_timeout = 1
This would become worse over time. (higher values)
Switching to supervisor.ticks_ms() would solve this, however I'm unsure if its available on all platforms yet.