Repository: flutter
Issue: Back swipe crash if deep linking into routes that contain hero widget.
Labels: c: crash,framework,f: cupertino,f: routes,has reproducible steps,found in release: 2.10,found in release: 2.13,team-design,triaged-design

<!-- Thank you for using Flutter!

     If you are looking for support, please check out our documentation
     or consider asking a question on Stack Overflow:
      * https://flutter.dev/
      * https://api.flutter.dev/
      * https://stackoverflow.com/questions/tagged/flutter?sort=frequent

     If you have found a bug or if our documentation doesn't have an answer
     to what you're looking for, then fill our the template below. Please read
     our guide to filing a bug first: https://flutter.dev/docs/resources/bug-reports
-->

## Steps to Reproduce

```dart
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return CupertinoApp(
      initialRoute: '/page2',
      routes: <String, WidgetBuilder>{
        '/': (BuildContext context) {
          return Scaffold(
            body: Center(
              child: Hero(
                tag: 'tag',
                transitionOnUserGestures: true,
                child: GestureDetector(
                  onTap: () => Navigator.of(context).pushNamed('/page2'),
                  child: Container(height: 150.0, width: 150.0, color: Colors.red),
                )
              ),
            )
          );
        },
        '/page2': (BuildContext context) {
          return Scaffold(
            body: Center(
              child: Padding(
                padding: EdgeInsets.fromLTRB(100.0, 0.0, 0.0, 0.0),
                child: Hero(
                  tag: 'tag',
                  transitionOnUserGestures: true,
                  child: Container(height: 150.0, width: 150.0, color: Colors.red)
                )
              ),
            )
          );
        }
      },
    );
  }
}
```

1. run the above code
2. use back swipe gesture to pop page2


## Logs

```
I/flutter (18341): ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
I/flutter (18341): The following assertion was thrown while handling a gesture:
I/flutter (18341): 'package:flutter/src/widgets/heroes.dart': Failed assertion: line 349 pos 12: 'box != null &&
I/flutter (18341): box.hasSize': is not true.
I/flutter (18341): 
I/flutter (18341): Either the assertion indicates an error in the framework itself, or we should provide substantially
I/flutter (18341): more information in this error message to help you determine and fix the underlying cause.
I/flutter (18341): In either case, please report this assertion by filing a bug on GitHub:
I/flutter (18341):   https://github.com/flutter/flutter/issues/new?template=BUG.md
I/flutter (18341): 
I/flutter (18341): When the exception was thrown, this was the stack:
I/flutter (18341): #2      _HeroState.startFlight (package:flutter/src/widgets/heroes.dart:349:12)
I/flutter (18341): #3      _HeroFlight.start (package:flutter/src/widgets/heroes.dart:583:21)
I/flutter (18341): #4      HeroController._startHeroTransition (package:flutter/src/widgets/heroes.dart:861:60)
I/flutter (18341): #5      HeroController._maybeStartHeroTransition (package:flutter/src/widgets/heroes.dart:794:9)
I/flutter (18341): #6      HeroController.didStartUserGesture (package:flutter/src/widgets/heroes.dart:733:5)
I/flutter (18341): #7      NavigatorState.didStartUserGesture (package:flutter/src/widgets/navigator.dart:3782:18)
I/flutter (18341): #8      new _CupertinoBackGestureController (package:flutter/src/cupertino/route.dart:630:15)
I/flutter (18341): #9      CupertinoPageRoute._startPopGesture (package:flutter/src/cupertino/route.dart:280:12)
I/flutter (18341): #10     CupertinoPageRoute.buildPageTransitions.<anonymous closure> (package:flutter/src/cupertino/route.dart:327:36)
I/flutter (18341): #11     _CupertinoBackGestureDetectorState._handleDragStart (package:flutter/src/cupertino/route.dart:542:54)
I/flutter (18341): #12     DragGestureRecognizer._checkStart.<anonymous closure> (package:flutter/src/gestures/monodrag.dart:384:52)
I/flutter (18341): #13     GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
I/flutter (18341): #14     DragGestureRecognizer._checkStart (package:flutter/src/gestures/monodrag.dart:384:7)
I/flutter (18341): #15     DragGestureRecognizer.acceptGesture (package:flutter/src/gestures/monodrag.dart:308:7)
I/flutter (18341): #16     GestureArenaManager._resolveByDefault (package:flutter/src/gestures/arena.dart:250:25)
I/flutter (18341): #17     GestureArenaManager._tryToResolveArena.<anonymous closure> (package:flutter/src/gestures/arena.dart:231:31)
I/flutter (18341): (elided 12 frames from class _AssertionError and dart:async)
I/flutter (18341): 
I/flutter (18341): Handler: "onStart"
I/flutter (18341): Recognizer:
I/flutter (18341):   HorizontalDragGestureRecognizer#f3b19
I/flutter (18341): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter (18341): Another exception was thrown: 'package:flutter/src/cupertino/route.dart': Failed assertion: line 547 pos 12: '_backGestureController != null': is not true.
I/chatty  (18341): uid=10148(flutterissuessample.flutter_issues_sample) Thread-2 identical 7 lines
I/flutter (18341): Another exception was thrown: 'package:flutter/src/cupertino/route.dart': Failed assertion: line 547 pos 12: '_backGestureController != null': is not true.
I/flutter (18341): Another exception was thrown: 'package:flutter/src/cupertino/route.dart': Failed assertion: line 547 pos 12: '_backGestureController != null': is not true.
I/chatty  (18341): uid=10148(flutterissuessample.flutter_issues_sample) Thread-2 identical 42 lines
I/flutter (18341): Another exception was thrown: 'package:flutter/src/cupertino/route.dart': Failed assertion: line 547 pos 12: '_backGestureController != null': is not true.
I/flutter (18341): Another exception was thrown: 'package:flutter/src/cupertino/route.dart': Failed assertion: line 553 pos 12: '_backGestureController != null': is not true.
```