I think all you need is a change of the dialpan
for the deny list, add a line under this one
same => n(denylist),GotoIf(${DB_EXISTS(denylist/${EXTEN}/${CALLERID(num)})}?:connect) ;don't goto connect
That uses the cid (NAME) and not cid (NUMBER) as cid (num) would be blank.
same => n(denylist),GotoIf(${DB_EXISTS(denylist/${EXTEN}/${CALLERID(name)})}?:connect) ;don't goto connect
And put those callsigns in the list.
Did not test it. Not set-up for WT at home.
So, still only a theory.
Yes that is twice the work checking the same list with different methods, but it should work till some amends can be made in the code.