Both COM and the new C# interop require an object instantiated in .NET. You cannot call static functions without an object. In PowerScript each global function is a class with one function defined so when you call global function, you actually instantiate an object, call the function, then destroy the object.
Also, each type passed to the .NET class has restrictions on datatypes. (e.g. C# interop doesn't support enums) in parameters nor function return type. Finally, PowerScript doesn't have the async/await equivalent.
Therefore => I suggest create .NET Standard assembly where you class(es) act as intermediary between your PowerScript client and the .NET world. What goes on inside that class is at free disposal and you can add whatever pre- and post-processing required for your PowerScript app.
EXAMPLE: System.Math has great functions like Log2 and FusedMultiplyAdd. However, they are static so they can't be called directly from PowerScript. However, you could create MySystem assembly and namespace where a Math class has functions like Log2 and FusedMultiplyAdd which relay calls to System.Math.
HTH /Michael