Proposal for content modules
Minor optimization - disable the module in the constructor if the conditions are not met. This prevents execute() being called at all.
Reverse previous change
Introduce template page modules - if a page module exists for a template block (sharing the same name), automatically load the page module before calling the template block modules.
test modules
add getBlocks() to checkout success page
rename modules
Don't integrate content modules into the template (cfgm_content->template_integration) so content modules are only loaded on demand. Add content functions to the template class to separate the content (on demand) from blocks (global).