If we can detect that the classpath has changed for a particular project, we can purge and repopulate a cache (needs implementation too) of the CustomServiceTasks available to the project. This would enable much faster loading of the CustomServiceTasks for the project and we need this because at the moment, the jar inspection is performed anew on each invocation. Serving the lists from a cache would be very beneficial.
Basic setup code for this has been created already. More work needed on precise event filtering and some refactoring in the ExtensionUtil class.