your first solution makes sense, you can deploy the NServiceBus host as a windows service have a saga that starts when the process starts, to do the polling using timeouts.
You can deploy another component (in the same process initially) 'emailSender' that receives a command to send a notification to the user and executes it.
Take a look at Andreas's post http://andreasohlund.net/2012/06/07/sending-emails-using-nservicebus/