@Johan_Ekstromfound a solution that's perfect for me.
I tried the recommended solution proposed by @CoreyDaun, but this didn't work for my purposes.
The problem I ran into with this Generic Annotation Family method is that I couldn't change the line style of the filled region - as in, the Family settings simply do not allow me to select and create a Line Style. The option is greyed out. So, I wanted the filled region to have a dashed border, but the annotation family method doesn't allow this.
I also didn't want to do the drafting view method, because I'm hatching over views that are being excluded from my current construction document contract, but will still be needed in the future (bid was high so scope was reduced, for now). The drafting view method would require, at minimum, a separate view for every single sheet.
Johan's solution, in my opinion, is incredibly straightforward and only requires that the workaround be performed once per project. It's pretty much a bug, but once you follow these steps (create line on sheet, make it a detail group, add detail group to a view, add a filled region to the detail group in that view, and ungroup the detail group on the sheet), the filled region just exists on the sheet now, and it can be copied on that sheet and copied to other sheets. You can change the profile, type, etc. It behaves exactly like you'd expect a filled region to behave.
The only caveat I should mention is that I am NOT trying to mask anything. I just want a hatch overlaying my views, and this works.
Revit is great, but sometimes Revit is also stupid lol