Repository: flutter
Issue: ElevatedButton color doesn't change when disabling the button and hovering with mouse at the same time
Labels: framework,f: material design,has reproducible steps,P2,found in release: 3.7,found in release: 3.10,team-design,triaged-design

This is a bug report for Flutter Web. 

When changing the button from enabled to disabled the button hover color persists and doesn't change to disabled color. When putting a 2 sec delay and moving the mouse away from the button it behaves correctly. 

## Steps to Reproduce

pubspec.yaml;
```
dependencies:
  flutter:
    sdk: flutter
  rxdart: ^0.23.1
  provider: ^4.1.2
```

main.dart:
```
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:rxdart/rxdart.dart';

void main() {
  runApp(
    Provider<Bloc>(
      create: (_) => Bloc(),
      dispose: (_, bloc) => bloc.dispose(),
      child: MyApp()
    ),
  );
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Column(
           children: <Widget> [
              StreamBuilder<bool>(
                stream: context.watch<Bloc>().value,
                initialData: false,
                builder: (BuildContext context, AsyncSnapshot<bool> snapshot) {
                  return RaisedButton(
                    color: Colors.blue,
                    hoverColor: Colors.red,
                    disabledColor: Colors.yellow,
                    onPressed: snapshot.data ? null : () {
                      context.read<Bloc>().add(true);
                    },
                    child: Text(
                      'Bugs'
                    ),
                  );
                },
              ),
              StreamBuilder<bool>(
                stream: context.watch<Bloc>().value,
                initialData: false,
                builder: (BuildContext context, AsyncSnapshot<bool> snapshot) {
                  return RaisedButton(
                    color: Colors.blue,
                    hoverColor: Colors.red,
                    disabledColor: Colors.yellow,
                    onPressed: snapshot.data ? null : () async {
                      await Future.delayed(const Duration(seconds: 2), (){});
                      context.read<Bloc>().add(true);
                    },
                    child: Text(
                      '2 sec delay'
                    ),
                  );
                },
              ),
              RaisedButton(
                onPressed: () => context.read<Bloc>().add(false),
                child: Text(
                  'Enable'
                )
              ),
              RaisedButton(
                onPressed: () => context.read<Bloc>().add(true),
                child: Text(
                  'Disable'
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

class Bloc {
  final _controller = BehaviorSubject<bool>();
  Stream<bool> get value => _controller.stream;
  Function(bool) get add => _controller.sink.add;

  dispose() {
    _controller.close();
  }
}
```

**Expected results:** <!-- what did you want to see? -->
Button 'Bugs' changes color to yellow.
**Actual results:** <!-- what did you see? -->
Button 'Bugs' doesn't change color and persists at the color red. When pressing the 'Enable' button the 'Bugs' button still doesn't change color but remains red until hovering with mouse on top of it.

<details>
  <summary>Logs</summary>

<!--
      Run your application with `flutter run --verbose` and attach all the
      log output below between the lines with the backticks. If there is an
      exception, please see if the error message includes enough information
      to explain how to solve the issue.
-->

```
$ flutter run -d chrome --verbose
[ +118 ms] executing: [/work/sdk/flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[  +33 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] 1d407de925c395e8e4e8712fb2f4f90712702600
[        ] executing: [/work/sdk/flutter/] git tag --contains HEAD
[ +174 ms] Exit code 0 from: git tag --contains HEAD
[   +3 ms] executing: [/work/sdk/flutter/] git describe --match *.*.*-*.*.pre --first-parent --long --tags
[  +14 ms] Exit code 0 from: git describe --match *.*.*-*.*.pre --first-parent --long --tags
[        ] 1.20.0-0.0.pre-29-g1d407de925
[  +13 ms] executing: [/work/sdk/flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[  +11 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/master
[        ] executing: [/work/sdk/flutter/] git ls-remote --get-url origin
[   +5 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +56 ms] executing: [/work/sdk/flutter/] git rev-parse --abbrev-ref HEAD
[   +5 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] master
[  +42 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +13 ms] executing: /work/sdk/android-sdk/platform-tools/adb devices -l
[  +51 ms] List of devices attached
[   +4 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[ +200 ms] Generating /tmp/minimal_example/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
[ +114 ms] Launching lib/main.dart on Chrome in debug mode...
[  +72 ms] Updating assets
[  +91 ms] Syncing files to device Chrome...
[  +38 ms] Generating /tmp/minimal_example/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
[  +24 ms] <- reset
[   +7 ms] /work/sdk/flutter/bin/cache/dart-sdk/bin/dart --disable-dart-dev /work/sdk/flutter/bin/cache/artifacts/engine/linux-x64/frontend_server.dart.snapshot --sdk-root
/work/sdk/flutter/bin/cache/flutter_web_sdk/ --incremental --target=dartdevc --debugger-module-names -Ddart.developer.causal_async_stacks=true --output-dill
/tmp/flutter_tools.CITUKD/flutter_tool.MFOUXD/app.dill --libraries-spec file:///work/sdk/flutter/bin/cache/flutter_web_sdk/libraries.json --packages .packages -Ddart.vm.profile=false
-Ddart.vm.product=false --bytecode-options=source-positions,local-var-info,debugger-stops,instance-field-initializers,keep-unreachable-code,avoid-closure-call-instructions --enable-asserts
--track-widget-creation --filesystem-root /tmp/flutter_tools.CITUKD/flutter_tools.UHOPJG --filesystem-scheme org-dartlang-app --initialize-from-dill build/cache.dill.track.dill --platform
file:///work/sdk/flutter/bin/cache/flutter_web_sdk/kernel/flutter_ddc_sdk.dill
[  +14 ms] <- compile org-dartlang-app:/web_entrypoint.dart
[+8021 ms] Syncing files to device Chrome... (completed in 8,097ms, longer than expected)
[        ] Synced 23.1MB.
[        ] <- accept
[        ] Caching compiled dill
[ +216 ms] [CHROME]:
[   +1 ms] [CHROME]:DevTools listening on ws://127.0.0.1:41451/devtools/browser/2b579610-9989-4ebb-9b7a-47b49f85bcba
[+1710 ms] Debug service listening on ws://127.0.0.1:42009/mKZoeTBkzeQ=

[ +564 ms] Debug service listening on ws://127.0.0.1:42009/mKZoeTBkzeQ=
[   +1 ms] Warning: Flutter's support for web development is not stable yet and hasn't
[        ] been thoroughly tested in production environments.
[        ] For more information see https://flutter.dev/web
[        ] 🔥  To hot restart changes while running, press "r" or "R".
[        ] For a more detailed help message, press "h". To quit, press "q".
```

<!--
     Run `flutter analyze` and attach any output of that command below.
     If there are any analysis errors, try resolving them before filing this issue.
-->

```
$ flutter analyze
Analyzing minimal_example...                                            
No issues found! (ran in 2.1s)
```

<!-- Finally, paste the output of running `flutter doctor -v` here. -->

```
$ flutter doctor -v
[✓] Flutter (Channel master, 1.20.0-1.0.pre.29, on Linux, locale en_US.UTF-8)
    • Flutter version 1.20.0-1.0.pre.29 at /work/sdk/flutter
    • Framework revision 1d407de925 (19 hours ago), 2020-06-11 19:45:02 -0400
    • Engine revision d417772d7a
    • Dart version 2.9.0 (build 2.9.0-15.0.dev f043f9e5f6)

 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /work/sdk/android-sdk
    • Platform android-29, build-tools 29.0.2
    • ANDROID_HOME = /work/sdk/android-sdk
    • Java binary at: /usr/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~18.04-b09)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions).

[✓] Connected device (2 available)
    • Web Server • web-server • web-javascript • Flutter Tools
    • Chrome     • chrome     • web-javascript • Google Chrome 83.0.4103.97

! Doctor found issues in 1 category.
```

</details>