Commented out creaation of DataSender and EventSender thread pools.
Use 1 thread instead for start,stop,set|get RuntimeProperty,..., data propagation and event notification

This is just a test.
Problems could especially arise if an I/O call hangs or you have a long term task