In my case JMeter 5.6.3 was able to run many times high number of threads like 3000 or 3100, but was not able to reach 3500 threads.
But in exactly the same conditions (the same test file, the same JVM, the same computer) JMeter was surprisingly stopping at 2467 threads... instead of running expected 3000.
And there is no message or log explaining this. This the worst thing: silent lack of predictability.