There is an internal field \Magento/Framework/View/Layout/Builder::$isBuilt
Need a public method.
There is an event layout_generate_blocks_after:
|
'layout_generate_blocks_after', |
But it is inconvenient to listen for the event while an extension just need to get the current layout state: built or not.