Question: With best practices in mind, what's the advisable approach to adding optional parameters to a constructor signature? Should you only ever list the core parameters and depend on initialisers for the non optional properties? Seems to me to be the most sensible approach!

Answer: 
As a rule of thumb, I add to a constructor only the parameters that are *required* to create a valid, working object. With the advent of object initializer syntax, it is much easier for the client to configure whatever other parameters he wants. 

However, I think that this rule *should* have many exceptions: many times you might want to provide an overload that makes it easy and clearer to the developer what he can expect to be able to change about an object.
Consider subclassing instead of several constructors. 

Reason: Often two different different constructors indicate two different behaviors are desired. Different nehaviors should be implemented by different classes.

The subclass would then have both a name that indicates how it's a specialized version of the base class, and a constructor that ensures that this kind of object can only be created in a valid state.