Thank you, @poppabear (who helped me through a side channel)!
I should have known to go back to the Laravel 4.2 documentation, as it explains the @overwrite directive, which is exactly what I was missing:
template-2.blade.php
@extends('template-1')
@section('myMarkup')
OVERRIDE markup goes here.
@overwrite
This produces the following, as expected:
<div>
DEFAULT markup goes here.
OVERRIDE markup goes here.
</div>
For whatever reason, this information was expunged from the documentation between versions 5.0 and 5.1.
This is a recurring pattern in the Laravel documentation. Crucial information is expunged between versions, and repeated attempts to have it re-added (i.e., PRs on GitHub) are ignored. Extremely frustrating.
And, aside from that, the current documentation is flatly incorrect in that it states the following at the bottom of https://laravel.com/docs/master/blade#extending-a-layout :
In this example, the sidebar section is utilizing the @parent directive to append (rather than overwriting) content to the layout's sidebar.
The implication is that the default behavior, when extending a template and defining a section with the same name as a parent template, is to overwrite the section completely. That assertion is provably untrue, as evidenced above.