This should be reusing the state machine already provided by the future. If you have contention you are actually going to leak callbacks in strange ways