ICEfaces delegates all push functionality to ICEpush, so ICEfaces code should contain no push implementation. Only the PushRenderer and a JSF ResourceHandler for integrating with ICEpush should be present. Further examination of the codebase is required to determine if other unused classes (beyond the ones that have already been removed) should be removed.
After analyzing the 'core' project source code I cannot detect any use of thread blocking strategies (such as wait/notify, mutexes or semaphores).