The first example ({{ widget.article_summary }}) is a statement, and is just evaluated when the page is rendered. Statements aren’t stored as values in the same way that an expression is. The method you now have working ({% text "article_summary" label="Article Summary" %}) is an expression, and therefore stores the value in the context of the template.
export_to_template_context is a parameter that makes a module's parameters available to the template environment without actually rendering the module. This parameter can be used all HubL module tags. The widget_data tag is used to retrieve these...