SQL Server 2012: Monitoring SPID on unpredictable app
I had the exact same situation and I created a SQL Agent job with the following script as the only step to monitor a job that occasionally runs long. 

if exists(
        SELECT *
        FROM msdb.dbo.sysjobactivity AS sja
        INNER JOIN msdb.dbo.sysjobs AS sj ON sja.job_id = sj.job_id
        WHERE sja.start_execution_date IS NOT NULL
           AND sja.stop_execution_date IS NULL and 
           sj.name ='Your job name'
        )
-- send an email 
exec msdb.dbo.sp_send_dbmail 
    @recipients ='email recipients',
    @subject='The job is running long',
    @body='Check the job on the server to see why it is running long'


In your case you would schedule this for 15 minutes after each execution of the job being monitored.