Reporting Services TempDB lock blocking report generation
A LCK_M_S is a blocking problem not a deadlocking problem. So you are just waiting on something else.  You need to determine what process is blocking you.

So, "it suddenly disappeared" because that block either completed or failed and rolled back.  This is normal.  What sounds abnormal from your notes or your perspective is the length of the block.

In addition to finding the blocking process you could also consider using a different transaction isolation level.  For example, although not without their own problems, you might consider using "READ COMMITTED SNAPSHOT" or "SNAPSHOT" isolation levels for your report.  This would allow it to read the data as of the start of the transaction and would avoid most blocking situations.