This works: mysite.com/sermon/term/childterm/page2/
This does not: mysite.com/sermon/term/childterm/page2/
according to your rewrite rule, I guess what you mean is
This works: mysite.com/sermon/term/page2/
This does not: mysite.com/sermon/term/childterm/page2/
I’m not a regex expert so I only come up with adding another rewrite rule to handle the
childterm situaion
add_rewrite_rule(
'sermon/(.*?)/(.*?)/page/?([0-9]{1,})/?$',
'index.php?post_type=".$cpt."&'.$tax.'=$matches[2]&paged=$matches[3]',
'top'
);