[Google Chromecast] bhiga:
Plex is generally not Internet/cloud-based, unless you're pulling channels. Local media files live on your local Plex Media Server and stay within your network.

Cast playback quality depends both on the WiFi signal quality at Chromecast and the casting device as well as the media itself. The higher the bitrate of the file, the less likely you are to have smooth performance. In particular, 1080p videos shot on phones tend to be problematic. 720p videos are usually lower bitrate and work better.

Move Chromecast away from your TV. The TV is a giant metal reflector/scrambler, so at least get Chromecast to position where the TV is not obstructing line-of-sight with your router/repeater.

Use the HDMI extender or an HDMI extension cable. My main Chromecast is attached to a 10-foot extension cable that puts it about a foot to the side of my TV.

Depending on your setup, it might be better to connect Chromecast to your AV receiver instead of directly to the TV.

If your AV components are in a metal shelf or cabinet, definitely move Chromecast so it is outside of the cabinet.

While the media itself doesn't change (unless you use a server that transcodes, like Plex, BubbleUPnP Server or Serviio), some players seem to do a better job with buffering. Buffering delays the start of playback and playback response, but can help to reduce pausing during playback.

A (simultaneous) dual-band router can help by reducing the amount of wireless traffic on the 2.4 GHz band. When sending media from a wireless device, the wireless device is using some bandwidth to send the media, then the Chromecast has to use an equal amount of bandwidth to receive the media, which means you're actually using double the wireless bandwidth.

While Chromecast may be fine getting a 4 Mbps stream directly from YouTube, sending a 4 Mbps stream from your phone on wireless will require

8

Mbps of stable wireless bandwidth.

See WiFi Bandwidth and Router considerations for illustrations and more explanation.

So, back to dual-band... The ideal situation is to have your source media device on a wired connection, but if you cannot do that, if you can have your source device on a 5 GHz connection, that will also remove congestion from the 2.4 GHz band.

Note that despite the marketing allusions, a dual-band router will not necessarily give you faster performance.

You get better performance because the router hardware itself tends to be faster*, the load on each wireless band is reduced if you can spread devices across bands, and the 5 GHz band generally has less interference from other devices (microwave ovens operate in 2.4 GHz, for example).

* Often times lower-end routers cannot achieve advertised/theoretical speeds because their on-board processing is too slow - this is especially true for routers that have only 100 Mbps LAN ports rather than Gigabit LAN ports.

20 Mbps is more than enough for any online streaming source that I can think of. Transcoding is an entirely different and unrelated thing.

Any transcoding will have a target encoded bitrate and that rate will almost always be 20 Mbps or less, especially if it will be sent through the Internet.

Transcoding is CPU-dependent, so it will depend on the machine doing the transcoding as well as the format of your existing media files. If you use a cloud-based service like RealPlayer Cloud, you upload your media and their servers do the transcoding for you, so you really don't have to worry about the transcoding aspect.

If you set up a Plex Media Server or a transcoding DLNA server (BubbleUPnP Server, Serviio, etc) then you will need to see if the machine you are running the server on has sufficient performance for your media formats and expectations.