How to include a custom Slack message only on completion?
As far as I was able to tell it's not possible.

We solved this by using Pipeline putting the custom messages in the Jenkinsfile.

The flexibility gained by having the Jenkinsfile in the git repo really helped our developers have a better understanding of the build process, and allowed them to make necessary changes to the build commands without the communications headache.

It's a nice excuse to move over to Pipeline.

It also happens to be very easy to do:

slackSend (color: colorCode, message: customMessage)