For active (non-aged) circulations, we could use the timezone of the circ_lib on the most recent circulation in the renewal chain. (Note usr_circ_history.source_circ points to the first circ in the chain).
Once the source circ chain is aged, we could fall back to server timezone (or patron home org unit timezone). Arguably, knowing the precise due date of a long-returned item is less important.
For active (non-aged) circulations, we could use the timezone of the circ_lib on the most recent circulation in the renewal chain. (Note usr_circ_ history. source_ circ points to the first circ in the chain).
Once the source circ chain is aged, we could fall back to server timezone (or patron home org unit timezone). Arguably, knowing the precise due date of a long-returned item is less important.