Repository: flutter
Issue: Navigator.popUntil shows intermediate pages during animation
Labels: platform-ios,framework,a: animation,f: routes,has reproducible steps,P2,found in release: 3.3,found in release: 3.7,team-ios,triaged-ios

## Steps to Reproduce
1. Have an app setup with bottom navigation, where each page is nested in its own `Navigator`. For example:
``` dart
import 'dart:math';

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage();

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  var _navKey = GlobalKey<NavigatorState>();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Navigator(
        key: _navKey,
        onGenerateRoute: (settings) => MaterialPageRoute(
          settings: settings,
          builder: (context) => Page(),
        ),
      ),
      bottomNavigationBar: BottomNavigationBar(
        currentIndex: 0,
        items: [
          BottomNavigationBarItem(
            icon: Icon(Icons.home),
            title: Text("Home"),
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.map),
            title: Text("Map"),
          ),
        ],
      ),
    );
  }
}

class Page extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        color: Color((Random().nextDouble() * 0xFFFFFF).toInt())
            .withOpacity(1.0),
        child: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              RaisedButton(
                child: Text("Next"),
                onPressed: () => Navigator.of(context).push(MaterialPageRoute(
                  builder: (context) => Page()),
                ),
              ),
              RaisedButton(
                child: Text("Pop all"),
                onPressed: () =>
                    Navigator.of(context).popUntil((route) => route.isFirst),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
```
2. Run in an iOS simulator (the issue is more obvious with default iOS push animations, but exists on Android)
3. Enable slow animations in Flutter Inspector (not required, but makes the issue easier to see)
4. Click "Next" a few times to add pages to the `Navigator`
5. Click "Pop all"

**Expected results:**
Only the top-most page is visible during the "pop" animation.

**Actual results:** <!-- what did you see? -->
All intermediate pages are visible during the "pop" animation. Example:

![ezgif com-video-to-gif](https://user-images.githubusercontent.com/272996/85306445-7b8cf080-b47c-11ea-84cd-45b94ee04dee.gif)


<details>
  <summary>Logs</summary>

Code tags did not work (were interrupted several times), so here's a pastebin of `flutter run --verbose` :

[https://pastebin.com/qUE1tJEv](https://pastebin.com/qUE1tJEv)

```
cadair-macbook:pop_until_bug cadair$ flutter analyze
Analyzing pop_until_bug...                                              
No issues found! (ran in 2.6s)
```

```
cadair-macbook:pop_until_bug cadair$ flutter doctor -v
[✓] Flutter (Channel master, 1.20.0-1.0.pre.132, on Mac OS X 10.15.5 19F101, locale en-CA)
    • Flutter version 1.20.0-1.0.pre.132 at /Volumes/ESSD/Workplace/sdks/flutter
    • Framework revision 5995661777 (3 days ago), 2020-06-19 16:15:58 -0700
    • Engine revision 676cd566f7
    • Dart version 2.9.0 (build 2.9.0-17.0.dev 7e72c9ae7e)

 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.0)
    • Android SDK at /Volumes/ESSD/Workplace/sdks/android
    • Platform android-29, build-tools 29.0.0
    • ANDROID_HOME = /Volumes/ESSD/Workplace/sdks/android
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.5, Build version 11E608c
    • CocoaPods version 1.8.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 38.2.3
    • Dart plugin version 191.8423
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] IntelliJ IDEA Ultimate Edition (version 2018.1.1)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 24.2.2
    • Dart plugin version 181.4445.29

[!] VS Code (version 1.46.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    ✗ Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (3 available)
    • iPhone 11 Pro • F1E292A0-A407-45E2-8E01-6C70244B936C • ios            • com.apple.CoreSimulator.SimRuntime.iOS-13-5 (simulator)
    • Web Server    • web-server                           • web-javascript • Flutter Tools
    • Chrome        • chrome                               • web-javascript • Google Chrome 83.0.4103.106

! Doctor found issues in 1 category.
```

</details>