What's the proper equivalent of `TAssetSubclassOf<>` for interfaces?

First of all use TSubclassOf insted of TAssetSubclassOf, blueprint is same valid class as C++ and it should be treated same as any other C++ class in C++, or else you gonna have compatibility issues with your C++ and blueprint classes and you will be making different features for each. In general don’t treat code as asset but as classes, that why you trying this kind of gymnastics now ;p

For classes implmenting interface try using

TScriptInterface<IInterfaceName>