Repository: flutter
Issue: SliverFillRemaining(fillOverscroll: true) does not extend beyond the viewport size
Labels: framework,f: scrolling,has reproducible steps,P2,team-framework,triaged-framework,found in release: 3.16,found in release: 3.18

### Steps to reproduce

Create a widget that builds a `CustomScrollView` with bouncing scroll physics and a single child: a `SliverFillRemaining` with `hasScrollBody: false` and `fillOverscroll: true`.

### Expected results

The constraints passed to the child of `SliverFillRemaining` are expanded when overscrolling so the child can fill the overscroll area.

For my use case I'd like to customize the background color of the overscroll area so it has the same background as `SliverFillRemaining`s child, which is different from the `Scaffold` background color.

This is the same use case as mentioned in #44353.
@Piinks 
From [this comment](https://github.com/flutter/flutter/issues/44353#issuecomment-555134039) I believe the intent was to support this use case:

> I like your idea of being able to use this sliver for just customizing the overscroll area separate from the background, without an actual child to draw otherwise in the scroll view. I'll see if this is something I can adjust to make possible. :)

You can see how the child is only stretched to a maximum size of the viewport by uncommenting the `SizedBox` in the sample code. The first 100 px of overscroll will be covered by `SliverFillRemaining`, but after that you'll see the scaffold's background color.

I think this happens because `RenderSliverFillRemainingAndOverscroll` uses `SliverConstraints.remainingPaintExtent` for the max extent and `remainingPaintExtent` does not grow beyond the viewport extent even when there is significant overscroll. That seems unintuitive to me; because of overscroll `remainingPaintExtent` should be able to get bigger than the viewport extent, right?

### Actual results

The child is not stretched to fill the overscroll area.

### Code sample

<details open><summary>Code sample</summary>

```dart
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Container(
            height: 500,
            color: Colors.blue,
            child: CustomScrollView(
              physics: const BouncingScrollPhysics(parent: AlwaysScrollableScrollPhysics()),
              slivers: [
                //const SliverToBoxAdapter(
                //  child: ColoredBox(
                //    color: Colors.green,
                //    child: SizedBox(height: 100),
                //  ),
                //),
                SliverFillRemaining(
                  hasScrollBody: false,
                  fillOverscroll: true,
                  child: Container(color: Colors.red),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}
```

</details>


### Screenshots or Video

<details open>
<summary>Screenshots / Video demonstration</summary>

Example with the SizedBox commented; we see the scaffold background color immediately when overscroll starts:

https://github.com/flutter/flutter/assets/14875382/44dc2463-f47e-4f0f-a2b1-fbd76d86616c

Example with the SizedBox uncommented; we see the scaffold background color after overscroll exceeds 100 px:

https://github.com/flutter/flutter/assets/14875382/bfb6b31a-d711-494d-92ae-430571c41f44

</details>


### Logs

_No response_

### Flutter Doctor output

<details open><summary>Doctor output</summary>

```console
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.16.5, on macOS 14.1 23B2073 darwin-arm64, locale en-US)
[!] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
[✓] Xcode - develop for iOS and macOS (Xcode 15.1)
[✗] Chrome - develop for the web (Cannot find Chrome executable at /Applications/Google Chrome.app/Contents/MacOS/Google
    Chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✓] Android Studio (version 2023.1)
[✓] VS Code (version 1.85.1)
[✓] Connected device (2 available)
[✓] Network resources

! Doctor found issues in 2 categories.
```

</details>