Wait for isolate start before proceeding with expression evaluation tests (#42464)

Fixes https://github.com/flutter/flutter/issues/42359
diff --git a/packages/flutter_tools/test/integration.shard/test_driver.dart b/packages/flutter_tools/test/integration.shard/test_driver.dart
index e2845eb..eabae35 100644
--- a/packages/flutter_tools/test/integration.shard/test_driver.dart
+++ b/packages/flutter_tools/test/integration.shard/test_driver.dart
@@ -127,8 +127,12 @@
     _vmService = await vmServiceConnectUri('$_vmServiceWsUri');
     _vmService.onSend.listen((String s) => _debugPrint(s, topic: '=vm=>'));
     _vmService.onReceive.listen((String s) => _debugPrint(s, topic: '<=vm='));
+
+    final Completer<void> isolateStarted = Completer<void>();
     _vmService.onIsolateEvent.listen((Event event) {
-      if (event.kind == EventKind.kIsolateExit && event.isolate.id == _flutterIsolateId) {
+      if (event.kind == EventKind.kIsolateStart) {
+        isolateStarted.complete();
+      } else if (event.kind == EventKind.kIsolateExit && event.isolate.id == _flutterIsolateId) {
         // Hot restarts cause all the isolates to exit, so we need to refresh
         // our idea of what the Flutter isolate ID is.
         _flutterIsolateId = null;
@@ -140,6 +144,10 @@
       _vmService.streamListen('Debug'),
     ]);
 
+    if ((await _vmService.getVM()).isolates.isEmpty) {
+      await isolateStarted.future;
+    }
+
     await waitForPause();
     if (pauseOnExceptions) {
       await _vmService.setExceptionPauseMode(