FFMPEG standard transcoding settings
Rather than using constant bitrate, have a go using constant quality (AKA constant rate factor, or crf). 

So instead of -b:v 2000 use -crf 23 (adjust the number to change the quality, higher is smaller / lower quality and lower is larger / better quality).

Constant quality usually gives you more bang for your bits, as it skimps on bitrate where it's not really needed. It also removes the need for extra scripting for diferent sizes, as it will automatically lower the bitrate for smaller frame sizes.

You could also use the x264 presets, like -preset slower or -preset veryslow to get x264 to spend more time optimising. It also removes the need to add all the extra encoding flags — the presets are basically some ready-rolled encoding flags (presumably made by people who know what they're doing). More on x264 encoding here

So your command could look like:

ffmpeg -y -i inputvideo.mp4 -async 1 -metadata:s:v:0 start_time=0 -s 1280x720 -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -movflags faststart -profile:a aac_low -preset slower -crf 23 -b:a 128k outputvideo.mp4


I don't think you need the -strict-experimental flag, unless you've got an old version of ffmpeg.