Repository: flutter
Issue: `SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky)` does not behave as expected in iOS
Labels: platform-ios,framework,engine,a: layout,has reproducible steps,P2,found in release: 3.7,found in release: 3.8,team-ios,triaged-ios

## Steps to Reproduce

1. Create an app with a widget that can be dragged around the entire screen
2. Call `SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky)` (This will hide the system overlays)
3. Move the widget to the the top border of the screen (or anywhere else where a swipe would trigger a system gesture)
4. Try to drag the widget in the same direction it would trigger a system gesture (like bringing the iOS menu from the top)

**Expected results:** <!-- what did you want to see? -->

According to the `SystemUiMode.immersiveSticky` documentation
```
  /// A swipe gesture from the edge of the screen displays overlays. In contrast
  /// to [SystemUiMode.immersive], this gesture is received by the application.
```
The draggable widget should be dragged. The iOS system overlays will appear, but should not be interacted with.
As comparison, the library home_indicator achieves this desired behavior by using `HomeIndicator.deferScreenEdges`

**Actual results:** <!-- what did you see? -->

The draggable widget does not receive the drag gesture if the gesture started close to the borders. The iOS system overlay appear and also execute its action.

<details>
<summary>Code sample</summary>

<!--
      Please create a minimal reproducible sample that shows the problem
      and attach it below between the lines with the backticks.

      To create it you can use `flutter create bug` command and update the `main.dart` file.

      Alternatively, you can use https://dartpad.dev/
      which is capable of creating and running small Flutter apps.

      Without this we will unlikely be able to progress on the issue, and because of that
      we regretfully will have to close it.
-->

```dart
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
// import 'package:home_indicator/home_indicator.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: Material(child: SystemChromeExample()),
    );
  }
}

class SystemChromeExample extends StatefulWidget {
  const SystemChromeExample({
    super.key,
  });

  @override
  State<SystemChromeExample> createState() => _SystemChromeExampleState();
}

class _SystemChromeExampleState extends State<SystemChromeExample> {
  var _offset = const Offset(100, 100);

  @override
  void initState() {
    super.initState();

    // Solution using HomeIndicator library
    // HomeIndicator.deferScreenEdges([ScreenEdge.bottom, ScreenEdge.top]);
    
    // Solution using SystemChrome
    SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky);
  }

  @override
  Widget build(BuildContext context) {
    return SafeArea(
      top: false,
      bottom: false,
      child: Stack(
        fit: StackFit.expand,
        children: [
          ColoredBox(color: Colors.blue.shade100),
          Positioned(
            top: _offset.dy,
            left: _offset.dx,
            child: Draggable(
              onDragEnd: (details) => setState(() {
                _offset = details.offset;
              }),
              feedback: const Material(child: DragMe()),
              child: const DragMe(),
            ),
          )
        ],
      ),
    );
  }
}

class DragMe extends StatelessWidget {
  const DragMe({
    super.key,
  });

  @override
  Widget build(BuildContext context) {
    return Container(
      padding: const EdgeInsets.all(16.0),
      color: Colors.white,
      child: const Text("Drag me from the borders"),
    );
  }
}
```

</details>


<!--
      Consider also attaching screenshots and/or videos to better
      illustrate the issue.

      You can upload them directly on GitHub.
      Beware that video file size is limited to 10MB.
-->