Dmitri, I appreciate your help but come on now, there is no need for rudeness. I've been speaking English fluently for 25 years and have a CS degree. Perhaps consider that you are not fully understanding my question. If it is due to poor explanation on my part, then I apologize.
My ultimate goal here is not for the test to run for a minimum amount of time. This is achieved easily enough with startUpTime + holdLoad + shutDownTime. What I need is for the last iteration of each thread to complete every sampler. I have no idea how long each iteration will take, as it varies.
I suppose that I can utilize your solution so that each thread is guaranteed to run for rampUp + holdTime amount of time, and then send a shutdown signal to that thread myself once all samplers have been completed
I already have a similar solution
using this logic to determine when a thread is scheduled to be shut down, and to not run the iteration if it cannot complete within {insertMagicNumber}. This however impacts the call concurrency since threads are scheduled to be shut down way to early.
I will give your approach a try.