How can I use 'format_type' => 'custom' for a datetime field?
I'm pretty sure you need to use the datetime_custom display type vs datetime_default. You won't need to pass the format_type parameter in your settings array. You will end up with something like:

...
-&gt;setDisplayOptions('view', [
  'type' =&gt; 'datetime_custom',
  'settings' =&gt; [
    'date_format' =&gt; 'd/m/Y',
  ],
...


That should work how you'd like. The datetime_custom formatter is defined in core's datetime module.