На основании следующей статьи:
https://docs.microsoft.com/en-us/dotnet/api/system.iformatprovider?view=netframework-4.7.2
class MyClass наследуется от обоих, ICustomFormatter и IFormatProvider, что заставляет string.Format(new MyClass(), "text", args) вызывать переопределенный метод IFormatProvider.GetFormat(Type). Дело в том, что мой Format метод никогда не вызывается (GetFormat возвращает this).
class MyClass
ICustomFormatter
IFormatProvider
string.Format(new MyClass(), "text", args)
IFormatProvider.GetFormat(Type)
Format
GetFormat
this