Protocol uses single handler object, refactored wake to be lockless and require same-thread usage.