According to https://developer.chrome.com/devtools/docs/timeline
Your recording should look something like the following. The firstrecord (Send Request) is Chrome's HTTP request for the page, followed by a Receive Response record for the corresponding HTTP response, followed by one or more Receive Data records, a Finish Loading record, and a Parse HTML record.
What I am seeing with the website that I am inspecting is
Send Request (page)
Receive Response (page)
Receive Data (page)
...
Receive Data (page)
Parse HTML
...
Parse HTML
Send Request (assets)
...
Send Request (assets)
Receive Data (page)
...
Receive Data (page)
Finish Loading (page)
Under what circumstances would the browser start to parse HTML before finish loading?
Chrome (Blink actually) starts with parsing HTML as soon as "enough" data is received. This means that the "Parse HTML" event can happen (several times) before "Finish Loading (page)" is shown.