Assert on play in editor: Attempting to replace an object that hasn't been fully loaded

Might be a feature or issue, but when I use async loading in the engine (with editor) I get assert saying:
AssetImportData /Game/BulletImpactVFX/BulletHitVFX_SFX/CTextures/T_SmokeSoft_01.T_SmokeSoft_01:AssetImportData (Outer=Texture2D /Game/BulletImpactVFX/BulletHitVFX_SFX/CTextures/T_SmokeSoft_01.T_SmokeSoft_01, Flags=0x00083408)

I digged this further with debugger and it seems to async loading is loading a particle system with emitters. In the emitters there are multiple materials used which use some of the same textures. The error comes from one of the shared textures.

Call stack is as follows:

Assert happens in UObjectGlobals.cpp:

In the async loading thread i can see 13 items being async loading one by one. The failed one is at 88% and others 0%.

Emitter is implemented as follows. The failure happens on loading the last emitter. Emitters HitDust, BurningPiecesSmoke and PlasticSmoke use different materials but these share the same texture which fails:

The problematic data seems to be editor only data related to the texture. I didn’t test whether it happens builds without editor.

I load assets asyncronously with StreamableManager and all other objects work just fine:
StreamableManager.RequestAsyncLoad(Objects, FStreamableDelegate::CreateUObject(this, &USingletonManager::ObjectLoadedCallback), 10, false, LoadDelayed);

Check also the call parameters for the failed StaticAllocateObject method call. See the underlined lines. So basically it’s trying to reload AssetImportData over already loaded one. Is there any way to get this to work? Removing the asset temporarily has worked for now, but all temporal fixes are a bit nasty.