Using these 2 queries you can find what your job is waiting for.
The first query lists all running user processes and if you don't know your job spid you'll find it filtering by program.
The second query will show what your job is waiting for:
select s.session_id, s.host_name, s.login_name,
db_name(s.database_id) as db,
r.percent_complete,
s.login_time,
s.last_request_start_time,
r.status as r_status,
r.wait_type,
s.program_name,
s.cpu_time,
s.reads,
s.logical_reads,
c.num_reads,
c.num_writes,
cast(s.logical_reads / 1024. * 8/ 1024 as decimal(20,2)) as Gb ,
s.row_count,
s.writes,
c.last_read,
c.last_write,
r.command,
r.wait_time,
r.last_wait_type,
[individual query] = substring(t.text , r.statement_start_offset / 2 + 1, (
case
when r.statement_end_offset = - 1
then len(convert(nvarchar(max), t.text)) * 2
else r.statement_end_offset
end - r.statement_start_offset
) / 2),
t.text
--p.query_plan
from sys.dm_exec_sessions s
join sys.dm_exec_connections c
on s.session_id = c.session_id
/*left*/ join sys.dm_exec_requests r
on s.session_id = r.session_id
outer apply sys.dm_exec_sql_text(r.sql_handle) t
-- outer apply sys.dm_exec_query_plan(r.plan_handle) p
where s.is_user_process = 1 and s.session_id <> @@spid
--order by 2
select s.login_name,
wt.*
from sys.dm_os_waiting_tasks wt
join sys.dm_exec_sessions s
on wt.session_id = s.session_id
where s.is_user_process = 1 and s.session_id <> @@spid
order by wt.session_id;