Here is the Craft Discord Info that James mentioned.
Your approach using nested matrices is one many developers use. Nesting too far, or creating "block" fields with many options and varieties will cause performance issues over time. You can also see a breakdown of performance if you're dealing with many sites in a multi-site setup.
I would advise not having the hero in the block builder. You have one hero per page, and its always at the top. so there's no advantage to having it inside the matrix field (which facilitates multiple blocks and repositioning) - as a disadvantage you're outputting that hero the least efficient way possible. Id recommend creating a set of fields for your hero (most performant), or a separate matrix with a min/max block count of 1 to house the hero (better author experience).
Ultimately, you'll need to weight the Author Experience v. the Performance and make your build choices from there. Here's some resources that might interest you:
Ultimately, you've hit a developer style conundrum, and you'll find that the real answer is "it depends". Hope these resources help!