Have compomise idea to make mid C# classes between C++ and blueprints, if you cant live without BPs.
C++ UCLASS => C# class => Blueprint.
AMyActor : AActor (C++)
[CS_]MyActor : AMyActor (C#)
[CS_]MySuperActor : [CS_]MyActor (C#)
[CS_]MyBestActor : [CS_]MyActor (C#)
[BP_]MyActor (Blueprint, base class one of: AMyActor (C++), CS_MyActor, CS_MySuperActor, CS_MyBestActor).
C# also may have attributes like UCLASS, UPROPERTY etc. So CS_MyActor automatically have all properties and methods available to blueprints, because it was exported from C++ to C#, but not all props/methods which was created in C# should be exported to blueprints.
For me sounds realistic, i dont care if it will require rewriting whole UE4 engine )))
Imagine we have C++ game project, and neighbor C# game project. We compile C++ project, it generates C# dll, C# game project ask us to reload new dll, we using new exported classes/props/methods, we compile C# project, new C# classes available in UE4 editor as base classes for blueprints. And dreams come true )))