**Do you want to request a *feature* or report a *bug*?**

Bug

**What is the current behavior?**

`isPending` is never set to true when calling `startTransition` within `useEffect`, but it *does* work properly when within a `useLayoutEffect`.

https://codesandbox.io/s/usetransition-useeffect-issues-p1j9s

Here's the correct behavior (accomplished via `useLayoutEffect`):

![good](https://user-images.githubusercontent.com/1500684/68164575-662d7b00-ff1a-11e9-9d02-71d7a22fd5cf.gif)

Here's the incorrect behavior (via `useEffect`):

![bad](https://user-images.githubusercontent.com/1500684/68164540-4c8c3380-ff1a-11e9-9191-d9c87ddecbed.gif)

Note the difference is that the opacity never changes to 0.4 (which is determined based on the `isPending` state).

**What is the expected behavior?**

I expect them to both behave the same (at least as far as the user can observe).

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**

- react@0.0.0-experimental-f6b8d31a7
- react-dom@0.0.0-experimental-f6b8d31a7
}
function mountEffectImpl(fiberEffectTag, hookEffectTag, create, deps): void {
  const hook = mountWorkInProgressHook();
  const nextDeps = deps === undefined ? null : deps;
  sideEffectTag |= fiberEffectTag;
  hook.memoizedState = pushEffect(hookEffectTag, create, undefined, nextDeps);
}
function updateEffectImpl(fiberEffectTag, hookEffectTag, create, deps): void {
  const hook = updateWorkInProgressHook();
  const nextDeps = deps === undefined ? null : deps;
  let destroy = undefined;
  if (currentHook !== null) {
    const prevEffect = currentHook.memoizedState;
    destroy = prevEffect.destroy;
    if (nextDeps !== null) {
      const prevDeps = prevEffect.deps;
      if (areHookInputsEqual(nextDeps, prevDeps)) {
        pushEffect(NoHookEffect, create, destroy, nextDeps);
        return;
      }
    }
  }
  sideEffectTag |= fiberEffectTag;
  hook.memoizedState = pushEffect(hookEffectTag, create, destroy, nextDeps);
}
function mountEffect(
  create: () => (() => void) | void,
  deps: Array<mixed> | void | null,
): void {
  if (__DEV__) {