PDCH congestion is related to assigning the physical timeslot to PDCH usage. But a TBF is only a “logical” allocation on an existing PDCH.
In other words, TBF can still be established on existing PDCH, (I forgot how many TBF can be allocated to one PDCH, it’s between 8 and 12 I believe)
Of course it impacts the end-user throughput but prevent congestion.
It’s also possible to change the PDCH allocation of a TBF : TBF will be changed from using 3 PDCH to 2 PDCH for example.
That will allow the 3rd PDCH to be used for a new TBF.
ZTE formula looks correct. Maybe their counters are not trigerring properly ?