The CalculateBackOff method of teh i cuve lrwan is too old and contains a major bug for join duty cycle procedure.
The calcBackOff.ElapsedTime is always now !.
In case of a new Initiliazation of the LoRa Stack, maybe 10 hours after the RTC startup, the join procedure will be delayed. This elapsed time must be the the LoRaMacInitializationTime as made in the official semtech repo, see following diff....
In is really a mess that your fork of the semtech official repo is not on github to can update easily all correction made on the official repo.