Ast* as ISDN->ISDN gateway… disconnect in-band info problem

It looks to me that Asterisk cannot transit both the disconnect ISDN disconnect signalling related to a failed call (e.g. congestion, unallocated) and the in-band info… It can transit either one or the other but not both (depends on chan_dahdi.conf inbanddisconnect=yes/no)! Is this understanding correct?

We have an Asterisk and a PBX each connected to the PSTN with ISDN over several trunks/ports.
We want to pass one of the PBX ports through the Asterisk to add some features to the call.
We have not yet done this, but we have done a feasibility study on it and we anticipate a problem.

The PBX handles the ISDN disconnect signalling and associated in-band well…even when a call failure disconnect signal comes in, a human caller can still hear the in-band info…classic ISDN PBX behaviour.

However if we wish to “open” the Asterisk to pass through such PSTN in-band info to the PBX it looks to me as if we will lose the ISDN disconnect signal.
The implementation of this seems to be in libpri. The chan_dahdi.conf param “inbanddisconnect” is actually abstracted and passed to libpri where it is used in the following location

case Q931_DISCONNECT:
……
if (ctrl->acceptinbanddisconnect && (c->progressmask & PRI_PROG_INBAND_AVAILABLE))
break;
Which to me reads as …if there is already in-band info there and we want it to continue, “break” and so IGNORE THE DISCONNECT….the disconnect is not then passed on to Asterisk.
This is fine if there is a human call originator – they can hear the issue and hang up - but not so good if the call originator was an application originating the call; no “hangup” will occur until timeout.

Can anyone confirm my understanding of this?
Thank you