Returns true if action can be run. Call only when known to be triggerable. Uses FJ tag bit to ensure that only one thread claims ownership. If async, starts as task -- a later call to tryFire will run action.
Performs completion action if triggered, returning a dependent that may need propagation, if one exists.
Returns true if possibly still triggerable. Used by cleanStack.