fixed inconsistent GC memory bug by making sure a GC handle to Feature is always preserved as long as needed. Previous code accidentally used a finally block instead of catch, which causes the handle to always be freed immediately regardless. This commit also changes behavior for Logger.Flush class to do nothing if there's no items to log.