I'm not familiar with timeout, but I can see that the priority of idle-session is set lower than transaction-timeout. Could you explain the reason? In my image this timeout locates at the lowest layer, so it might have the lowest priority.
My apologies! I just add a enum for idle session and ignore the comments that says the enum has priority.