Issue title: Pipe non-existent file to stdin freezes fish
 Issue body: <!--
Please tell us which fish version you are using by executing the following:

  fish --version
  echo $version

Please tell us which operating system and terminal you are using. The output of `uname -a` and `echo $TERM` may be helpful in this regard although other commands might be relevant in your specific situation.

Please tell us if you tried fish without third-party customizations by executing this command and whether it affected the behavior you are reporting:

  sh -c 'env HOME=$(mktemp -d) fish'

Tell us how to reproduce the problem. Including an asciinema.org recording is useful for problems that involve the visual display of fish output such as its prompt.
-->

```sh
cat | echo < a
```
This freezes the fish shell and CPU usage goes to 100%.
If I use a terminal emulator(Alacritty), simply it exits.
On the bash shell, Behavior is the same as `cat | echo`.
OS: Arch Linux(Fish installed using Pacman, no other shell customization)

`fish --version`:
```
fish, version 3.1.2
```

`echo $version`:
```
3.1.2
```

`uname -a`:
```
Linux Kuro 5.8.8-zen1-1-zen #1 ZEN SMP PREEMPT Wed, 09 Sep 2020 19:01:48 +0000 x86_64 GNU/Linux
```

`echo $TERM`:
```
alacritty
```

> Please tell us if you tried fish without third-party customizations
Yes
 Comments: 
 Comment 0: Duplicate of #7038
{'source': 'GithubIssues', 'repo_name_with_owner': 'fish-shell/fish-shell', 'issue_id': 700594772, 'repo_stars': 19824.0}