So... the reason it didn't support this initially is older versions of C# (4? I forget) didn't support optional parameters constructors at all. I'm fine with breaking support with Unity 3.5 or whatever the last version was that had this constraint. I was maintaining a live game that used 3.5 when Strange was released, so it was a meaningful choice at the time. It's throwing a null binding exception because there's no binding, so it's all "working". Probably not the outcome you wanted!
If you want a fix right now, just add the optional bit in a default constructor and move on with your day. When selecting which constructor to use, we choose the one with the shortest signature. If you want to default to one with a longer signature, simply give it the [Construct] tag to designate it the preferred constructor. I find it a good habit to tag one constructor if you have multiple, even if it's the shortest and doesn't need the designation.
If you want to look into strange itself for this, check out ReflectionBinder, where we will initially do all of our reflection. mapPreferredConstructor, findPreferrredConstructor. Where we look at the ParameterInfo[], we would need to store the isOptional and/or DefaultValue from ParameterInfo and store those values so we can access them later at injection time (Injector.Instantiate)
Hope that helps!