In NotificationJob.executeSingle we instantiate a new JavaMailSenderImpl() which we then populate with some values. There are however other properties  that can be set on the Session. Some of them are very useful, especially in production environments.
In particular, the 'mail.smtp.connectiontimeout' should be set to a different value than the default 'infinite' which would cause the thread to hang, waiting for a unresponsive SMTP server (either misconfiguration of server down).
I will try to come up with a patch towards the end of the week if nobody beats me to it.