I believe "Let coach decide" works so well (or not, in your case...) because it compares players on some criteria and chooses the one deemed to me most efficient atm.
The strict substitution pattern doesn't work well because, as Justin said, it only cares about the starter's level of stamina/efficiency and does not compare the starter with his set backup/reserve at all.
If I'm not far off, it should be quite easy to fix the substitution patterns by just adding a comparison check (with different modifiers for backups and reserves ofc) at every game break suitable for substitutions.