I want to understand the actual JMeter throughput behavior achieved at runtime.
Scenario - I\'m increasing the JMeter throughput at runtime using Constant Throughput Time
You can play the same trick with the number of threads in the thread group, just define it using __P() function and you will be able to manipulate it using Beanshell server. Another option is using a JSR223 Test Element and Groovy language to add the new thread(s) where/when required like:
ctx.getThreadGroup().addNewThread(0, ctx.getEngine())
JMeter doesn't "identify" anything, it just tries to execute Samplers as fast as it can and the number of requests per second depends on 2 factors:
there are no "mechanisms" which detect the application under test behaviour, the closest solution is Auto Stop Listener
See point 2