My work around was to load the DestructionModule when Apex is first initialized, instead of doing it in the plugin StartupModule (basically restoring what it was doing before 4.18).
I think other possible solution would be to not have any startup asset reference destructible assets (no direct or indirect references through base classes, singleton, etc), so that any destructible asset is loaded after all plugins have been initialized.