text: Title: Support reading stdin in `readline` interactive move (`TERM=dumb xonsh -i` hangs)
  Body: ## Current Behavior
  <!---
  For general xonsh issues, please try to replicate the failure using `xonsh --no-rc --no-env`.
  Short, reproducible code snippets are highly appreciated.
  You can use `$XONSH_SHOW_TRACEBACK=1`, `$XONSH_TRACE_SUBPROC=2`, or `$XONSH_DEBUG=1`
  to collect more information about the failure.
  -->
  
  ```xsh
  echo whoami | TERM=dumb xonsh -i --no-rc
  # or the same
  echo whoami | xonsh -st dumb -i  # dumb is readline in fact
  # or the same
  echo whoami | xonsh -st readline -i
  ```
  
  right now, this opens an interactive terminal which hangs indefinitely and does not respond to input:
  ![image](https://github.com/xonsh/xonsh/assets/23638587/3010a675-d57b-439e-a731-c97f4039b6e0)
  
  xonsh has to be manually killed by another process.
  
  ## Expected Behavior
  
  xonsh behaves the same as if TERM were unset, or set to a "normal" value (e.g. `linux` or `xterm-256color`).
  
  ## Workaround
  Set any other `TERM=linux` or `TERM=xterm` or etc.
  
  ## xonfig
  
  <details>
  
  ```xsh
  +-----------------------------+----------------------+
  | xonsh                       | 0.16.0               |
  | Git SHA                     | b5ebcd3f             |
  | Commit Date                 | May 30 09:51:25 2024 |
  | Python                      | 3.10.12              |
  | PLY                         | 3.11                 |
  | have readline               | True                 |
  | prompt toolkit              | 3.0.45               |
  | shell type                  | none                 |
  | history backend             | json                 |
  | pygments                    | 2.18.0               |
  | on posix                    | True                 |
  | on linux                    | True                 |
  | distro                      | pop                  |
  | on wsl                      | False                |
  | on darwin                   | False                |
  | on windows                  | False                |
  | on cygwin                   | False                |
  | on msys2                    | False                |
  | is superuser                | False                |
  | default encoding            | utf-8                |
  | xonsh encoding              | utf-8                |
  | encoding errors             | surrogateescape      |
  | xontrib                     | []                   |
  | RC file                     | []                   |
  | UPDATE_OS_ENVIRON           | False                |
  | XONSH_CAPTURE_ALWAYS        | False                |
  | XONSH_SUBPROC_OUTPUT_FORMAT | stream_lines         |
  | THREAD_SUBPROCS             | True                 |
  | XONSH_CACHE_SCRIPTS         | True                 |
  +-----------------------------+----------------------+
  ```
  
  </details>
  
  ## more info
  
  note that setting `--no-env` makes the problem go away, mostly:
  ```
  $ echo whoami | TERM=dumb xonsh -i --no-rc --no-env
  Warning: Input is not a terminal (fd=0).
  jyn@pop-os ~/src/xonsh title @ whoami
  jyn
  /usr/bin/stty: 'standard input': Inappropriate ioctl for device
  jyn@pop-os ~/src/xonsh title @ 
  ```
  
  i think this is a red herring though; it just means that `TERM=dumb` gets ignored by xonsh itself. `echo env | env -i TERM=dumb $(which xonsh) -i --no-rc ` still hangs indefinitely.
  
  originally i thought this was related to [`DumbShell`](https://github.com/xonsh/xonsh/blob/38295a1dd941451362d2e3d14dd29d94ba4f54ce/xonsh/dumb_shell.py#L7) behaving differently than ReadLine shell, but i tried this diff and it didn't fix the issue:
  ```diff
  diff --git a/xonsh/shell.py b/xonsh/shell.py
  index f54c5350..4e60b6ae 100644
  --- a/xonsh/shell.py
  +++ b/xonsh/shell.py
  @@ -208,6 +208,4 @@ class Shell:
                   from xonsh.ptk_shell.shell import PromptToolkitShell as cls
  -            elif backend == "readline":
  +            elif backend == "readline" or backend == "dumb":
                   from xonsh.readline_shell import ReadlineShell as cls
  -            elif backend == "dumb":
  -                from xonsh.dumb_shell import DumbShell as cls
               else:
  ```
  
  ## For community
  ⬇️  **Please click the 👍 reaction instead of leaving a `+1` or 👍  comment**
  