Azure Document Intelligence (especially with the layout model[0]) is really good. It has both JSON and MD output modes and does a pretty solid job identifying headers, sections, tables, etc.
What's interesting is that they have a self-deployable container model[1] that only phones home for billing so you can self-host the runtime and model.