In the initial state create a flow level variable Flow.lastRan with value expression GetCurrentDateTimeUtc(). Then in the recurring state, start with a decision action to see if it's been 2 minutes since it last ran. If true, send your response and reset the Flow.lastRan variable's value. Otherwise just fall down to the end state action.
Inqueue flows will be interrupted any time an agent takes the interaction, no matter what the flow is doing.
The full expression in the decision action is
DateTimeDiff(GetCurrentDateTimeUtc(), Flow.lastRan) > MakeDuration(0, 0, 2, 0)

------------------------------
Melissa Bailey
Genesys - Employees
------------------------------