Варианты менеджмента обработки состояний запросов в Redux?
В плане так их надо передать в редюсер для ошибок, а в компоненте следить за изменением этого редюсера...
Не надо. Ошибку и состояние загрузки можно обрабатывать в том же редьюсере, что и токен.const initialState = {
  isFetching: false,
  token: null,
  error: null,
};

function auth(initialState, action) {
  switch(action.type) {
    case LOGIN_REQUEST:
      return {
        ...state,
        isFetching: true,
        error: null,
      };

    case LOGIN_SUCCEEDED:
      return {
        ...state,
        isFetching: false,
        token: action.payload,
      };

    case LOGIN_FAILED:
      return {
        ...state,
        isFetching: false,
        error: action.payload,
      };

    default:
      return state;
  }
}Будет ли правильным делать запросы из компонента?
Не будет.Ведь так при ошибке мы может её сразу добавить в стейт errors компонента и всё. 
Не ясно зачем вам вообще добавлять ошибку в state.const mapStateToProps = state => ({
  error: loginErrorSelector(state),
});render() {
  const { error } = this.props;

  if (error) return <TryAgain error={error} action={login} />;
  
  return ( /* ... */ );
}
Антон Спирин, отличный пример показал. Стоит добавить что удобно создавать данные экшены через специальный миддлвэр - promise-middleware. В который ты передашь только ключевое слово LOGIN и сам промис запроса, а на выходе получишь вызов редюсеров, как описал Антон