Are "MySub" "MySubSub2" etcetera actually the same? Then you can collapse the conditions:
MySub/MySubSub2/SubSubSub3/SubSubSubSub4/(PageOne|PageTwo)\.html
You, ahem, know perfectly well you're supposed to escape the literal period ;) though in this situation it's not a critical error.
But it doesn't need to be a condition at all. Just say
RewriteRule ^sub1/sub2/sub3/(page1|page2)\.html http://example.com et cetera
You're also correct that in this specific case, the [R] rule needs to come before the [G] rule -- opposite the usual "list in order of severity" principle -- so you can intercept the pages that are to be redirected. But since they have already been intercepted, you don't need the !Pageone etc. exceptions in the [G] rule. Those requests will never get as far as this rule.
You forgot one part of the second rule (I suspect a cut-and-paste error when posting, but I'll spell it out for future reference). It goes
RewriteRule ^dir/subdir/subdir2/ - [G]
This rule, too, does not need any Conditions. As a general principle, never put anything in a Condition that can go in the body of the rule. This applies most often to
positive (i.e. no leading !) %{REQUEST_URI} statements.