How does scaling work in ffmpeg?
Remove -vf scale=800:-1 to avoid rescaling. Remove -r 20 to avoid changing frame rate. You're transcoding from a stream in a MP4 to the GIF codec, so the bitrate will not remain the same, nor is there any sense in trying to keep it the same.
A stream is scaled by using the scale filter in a simple filterchain -vf or a complex filterchain -filter_complex or using the -s WIDTHxHEIGHT output option.