Your BreakManager does not have a #getName function, every RandomSolver should have one, the client is trying to execute that method but it's not there, hence the NPE.
This all depends on the scope and how big you're planning to go. Theoretically, 25k p/h would suffice if you'd run 100s of accounts, for which the 25k p/h covers their costs as well.
You make a custom BreakManager by creating a new class which extends RandomSolver.
In the newly created BreakManager class you will handle the logic of when the BreakManager should be activated, you do this in the #shouldActivate method.
Make sure that you don't forget to override the OSBot Break RandomSolver with your newly created one.
A hacky way would be to pause the ScriptExecutor. You can check when you should resume it again in a different running thread. This is not the most beautiful way to do it though.