I thank you for the information, but I would like to ensure that I have understood your article correctly.
For the new roles, the only role that can start or stop a job is: SQLAgentOperatorRole therefore, I could not set up a situation where I the senior DBA create the job, and then delegate less knowledgable people to actually run the job without also giving them the ability to edit the job.
For the performance improvement, when a thread stops and looks to see if a similar step is to be performed, does this still take into account job step order? For example, I have several jobs that repeat the same steps for different databases, specifically, copy backup file, restore database to interim, drop old database, rename interim to final name. With 20+ databases on a server, I have 20 copies of each step with different parameters, and I hope that SQL Server would not try to rename an interim database before it has been restored.
I did not understand your point about Max Worker threads. Did you mean that in 2000, there was one max shared by all SQL Server and now the Agent subsystem has its own maximum?
Once again thank you for the information, I look forward to your answers,