There is not other way to do so thats why this function has custom K2Node, same like SpawnActor which do auto casting of output pin, BlueprintCallable is quite limited and you can check all meta options it has by looking in to K2Node_CallFunction (which is function call node), but i don’t see any options you looking for. It’s really hard to do so as optional arguments are not a feature of C/C++, there only default values for arguments which kind of could work that way.
Don’t get get overwhelmed by K2Node_EaseFunction and focus, you simply need to define UI behavior of the node, Study each function one by one and see what they do and try to replicate what it do, each function has a role and your code need to fullfill it there also lot more function you can override in K2Node (ones with V icon):
UK2Node | Unreal Engine Documentation
This node in perticilar seems to work like a macro, in ExpandNode() code creates virtual K2Node_CallFunction, binds ease function UFunction from KismetMathLibrary and virtually repin all the links to new pin so it executes that function in C++. Try to mimic what it is doing.
Here some other example in just found maybe it will be simpler for you:
There one thing i would remove from there and that is Blueprintable, BlueprintableType as this class wont be even usable in blueprints anyway.
Also note that as this tutorial suggest you should create editor module for this as editor APIs wont be avable during packaging and final game you will get compile errors, in normal game project modules are defined in uproject file in case of plugin it is uplugin as tutorial suggest