If the delay used is for causing a preset delay before an action, you might wanna try using Elapsed Time instead. With Elapsed Time, the similar, if not same, flow control can be achieve through its Time has Elapsed output i.e. True to execute next action, while having able to stop the loop almost immediately...
Hope above make sense to you 😉
PS: Below is of Context Help of STOP vi. Try avoid using STOP unless necessary.
If you need to abort execution of all VIs in a hierarchy from the block diagram, you can use this function, but you must use it with caution. Before you call this function with a TRUE input, be sure to complete all final tasks for the VI first, such as closing files, setting save values for devices being controlled, and so on. If you put this function in a subVI, you should make its behavior clear to other users of the VI because this function causes their VI hierarchies to abort execution.
In general, avoid using this function when you have a built-in termination protocol in a VI. For example, I/O operations should be performed in While Loops so that the VI can terminate the loop on an I/O error. Also, consider using a front panel stop button Boolean control to terminate the loop at the request of the user rather than using this function.
Within the same vi, there is no perfect solution to terminate a running "thread" with a delay component in it as soon as you press some button, unless the developer can get the handle of these "threads".But, as you know, not all of these for/while loops are actually threads.Once "handles" are provided, maybe, the architecture of LV would be ruined.So, the only thing we can do is putting codes in a subvi, than terminating that vi.
by the way, there are huge differences between Time Delay and Elapsed Time. i don't think they can replace with each other any time.Elapsed Time just is a time counter, and costs a high CPU usage, while Time Delay doesn't do that.When Time Delay is running, your codes just become still and costs 0 CPU usage.
here is example(LV09) showing the difference between Time Delay and Elapsed Time.
If you use the combination of Time Delay and Elapsed Time, it is achievable, not exact, but close.
Unless CPU usage is Super critical to your program, else, using Elapsed Time for triggering of "next" action, and with a small loop delay (using Time Delay) shouldn't cause too high the CPU usage... some level of compromise has to be done in order to have both the timed-delay-action and "immediate" response of a while-loop.