My first instinct is to tell you to simplify things, but you've specifically said you want it to be complex and dimensional as opposed to 'walking signposts'.
It would benefit me if I could see an example of one of your dialogue trees for your new game, but obviously change names and details to prevent any plot-lines from slipping out before the game is completed.
One of my suggestions is to split the dialogue into three branches: Primary, Secondary and Tertiary. Or maybe rename them as Plot (the branch the player NEEDS to take), Detective (the branch that reveals info on other characters, subtle hints) and OTHER (this can be exposition about the world or perhaps even witty banter that makes the NPC feel more real. This branch is irrelevant to the plot).
The branches should be replayable in case the player forgets what the NPC has said, but you're worried it will seem unrealistic. Unfortunately there's no way around it without creating alternative 'barks' that the NPC can use before repeating the original text.
For example, the first time you speak to the NPC they tell you what they know, but the second time you ask them the same question they'll have to make some kind of remark like, "I hate to repeat myself" or, "Have you forgotten already?" before the dialogue continues.
Nintendo are terrible at this kind of thing. The NPCs will constantly repeat themselves regardless of how much progress you've made in the game. They treat you like it's the first time you've met them.
So my next suggestion is to put limits on your variables. I'll use your drunk/trespass idea as an examples.
Player speaks to NPC#1. Is NPC#1 drunk? If 'no' then only have Primary and Tertiary branches available. That way the player can still follow the plot and learn about the NPC/the world. End conversation.
Player speaks to NPC#2. Player picks Secondary branch (Detective) and learns that NPC#1 likes to get drunk. End conversation.
Player gives alcohol to NPC#1 and speaks with him. Is NPC#1 drunk? If 'yes' Primary and Tertiary branches have altered slightly, but now the Secondary branch is available. Character learns new info from this Secondary/Detective branch, and may receive an item or info to proceed the plot.
In that example there are only two variables for NPC#1 - 'Drunk' and 'Not drunk'. Both variables should have similar dialogue but both/the latter variable must be met to proceed. That gives the player every chance to read each dialogue branch - unless you've played the game before and you get the character drunk straight away instead.
Sorry if this sounds like I'm hitting you around head, I'm sure you've encountered all of this while making Postmortem, it's just I don't know your writing process.
I don't know if I'm helping, lol. Let me know.