kmag tracked this down - even though bootstrap.js is waiting until it observes "sessionstore-windows-restored" to start the embedded WebExtension, because it's declared as an embedded WE in the install.rdf the manifest.json gets parsed at startup.
There is some underlying race condition here when WE manifest parsing happens at startup - however we don't need/want to do this parsing at startup so we can just make the WE not be embedded and install+start it after "sessionstore-windows-restored".