Step 1: Upgrade to TTY shell

In the remote shell, upgrade the shell to TTY:
python3 -c 'import pty; pty.spawn("/bin/bash")'
Step 1 is sufficient in most scenarios. If you plan to use things like Vim or Nano for privesc, then you need to complete all steps.

Step 2: Export terminal environmental variables

In your local shell, check the environmental variable $TERM:
$ echo $TERM
In the remote shell, export the environmental variables $TERM and $SHELL:
export TERM=xterm-256color
export SHELL=/bin/bash

Step 3: Set up terminal size

In your local shell, check terminal rows and columns:
$ stty size
36 145
In the remote shell, press ctrl+z to bring the current session to background:
[1]+ Stopped nc -nlvp 443
Now you are brought back to the local shell. Bring the reverse shell to foreground:
$ stty raw -echo;fg
nc -nlvp 443
$ reset
Adjust the terminal size:
stty rows 36 columns 145