Added integ test coverage that proves that task execution events are synchronised and clients should not worry about thread safety of the task execution listener implementations.
Added daemon hygiene action that is stateful and can host any hygiene/cleanup code the daemon wishes to do.
Made the daemon hygiene action hint the jvm for gc(), after the daemon finishes building. It should not happen too often, so there's some extra logic that makes sure gc() is hinted at most once per 2 minutes (current default, may needs some tweaking).