It would fail after 90 seconds if it cannot complete and show an error in your error history tab. I would check to ensure you are not getting timeouts there.
If you see it getting stuck on "going to run" that usually is an indication that it is currently running but it is taking a very long time to run. We only have the states right now of:
"going to run" | "succeeded" | "failed" | "partial failure"
It doesn't look like we have an actual "running" at the moment. We might change that in the future though if it is causing confusion.
If you do see it beginning to timeout I would look at reducing your threat list size by splitting it apart into a few smaller lists and then making separate rules per list or querying the lists in separate rules using a query criteria to reduce the amount of time it takes to look through the list.
Also if you do see it beginning to timeout you could look at your query against your data set when using the indicator matches to see if possibly you could reduce the amount of data it queries within that block of time.