If you want to modify the escape chances, the trigger that handles it is in simple_triggers.txt. So open that up and look for
48.000000 9 1 3 936748722493063486 648518346341351424 50 6 3 1224979098644774912 648518346341351443 648518346341351501 2133 2 1224979098644774913 30 4 0 541 3 1224979098644774912 135 1 2133 2 1224979098644774913 5 3 0 1 3 936748722493063486 1224979098644774912 1224979098644774913 3 0
The
50 is the chance of escaping while you have them in your party. The
30 is the chance of them escaping while stored in a castle or town without prison tower. The
5 is the chance of them escaping from a place with a prison tower built. The
48 is the number of hours between doing this check.
You could change any of that, but this isn't just from the player party - this is from everyone, so don't just zero out the chances or lords will NEVER get away from npcs and your map would end up pretty empty after a while. If you wanted to build prison towers you could just set that 5 to a 1 or a 0 or something and make escape from prison towers extremely rare, and I think only the player actually builds prison towers so unless you build one and then give the castle to another lord they will only be under your control. Just be aware that if you change the 50 or the 30 it will make all lords stay in captivity longer.
As far as the honor thing, if you want to keep them indefinitely just eat the hit - the only thing honor affects is how lords like you, and it makes sense that honorable lords would get mad at you for keeping noblemen imprisoned indefinitely.