When using the automatic Service type creator for spring applications, it is possible that on agent startup, each service type will create its own executor in ScheduleThread and service type should not have their own executor. This is due to the schedule thread starting before the plugins that are using the spring auto service type creator) are initialized.
After some investigation, it appears that the best resolution is to throw out the unknown plugin types. This would only ignore the scheduling of the plugins on restart of the agent. So the metrics will be correctly scheduled on the next scheduling cycle, once all the plugins are fully initialized.