You praise Chromecast for screen mirroring, but don't mention its major limitation: both the client and the receiver need to be connected to the same wifi network. This is usually easy enough at home, but can be difficult in an office, friend's home, or hotel. In these situations Miracast is the way to go for screen mirroring, since it uses wifi direct and doesn't require connecting to a wifi network. For example, most hotel rooms have TV's with free HDMI ports. With a Microsoft display adapter, or other device such as some Roku's and Amazon fire sticks which support Miracast, you plug the dongle in to the TV, and wirelessly connect your cell phone using Miracast. You can then cast anything on the cell phone's screen, as well as the audio, to the TV. Can't do this with chromecast.
Most recent vintage Android cell phones, except for Googles's, support Miracast. It's on the settings menu, under display. Miracast is disabled on Google branded phones for mysterious reasons, but can be turned of if you're willing to root the phone.