I'm currently going to hack around it I think by simply making a function that updates the EXPORT_FILE_NAME property with the current heading text.
That's something like
```
(defun timvisher-org-set-export_file_name-property-to-heading-text
()
(interactive)
(org-set-property
"EXPORT_FILE_NAME"
(let ((stripped-heading
(replace-regexp-in-string
"[^-A-Za-z0-9_.~#+ ]"
""
(substring-no-properties (org-get-heading t t t t)))))
(substring-no-properties
stripped-heading
0
(min (length stripped-heading) 250)))))
```