Just to clarify a bit, MPLS is an underlay which can run a bunch of different overlays (including BGP EVPN!). VxLAN is an alternative underlay, which is typically used to run BGP EVPN as its overlay.
So you could run MPLS (especially Segment Routing MPLS) on every single node in the network, and still run BGP EVPN wherever you desired to, with L3VPN or L2VPN wherever else you desired.
MPLS is well suited to scale over arbitrary topologies (hub-spoke, daisy-chain, ring, big amorphous blobs, spine-leaf, etc) and has various design options for scaling it larger than your individual IGP (Unified/Seamless, SRTE with PCE, etc)
VxLAN is typically designed and scaled for Datacenters or LANs, and typically in spine-leaf topologies.
Routers marketed for WAN/edge typically don’t speak VxLAN, and switches marketed for Datacenter or LAN typically don’t speak MPLS (especially LDP, some newer ones are looking at Segment Routing MPLS)
I used the word “typically” like 17 times there, because individual vendors and products definitely will vary, and it’s not like you can’t build a hub-spoke site with VxLAN on it. I just wanted to be clear you don’t have to pick “MPLS vs EVPN”, it’s MPLS vs VxLAN, and EVPN over either.
As to how EVPN differs from VPLS or pseudowires or VRF-based L3VPN…
It theoretically consolidates all of that into a single address-family, using route-type 2 for individual host entries, with their MAC address and potentially MAC-to-IP bindings. Route-type 5 carries L3 subnet routes like L3VPN used to. So if you used to run VPLS and also L3VPN, now you only need to manage BGP EVPN. You’ll manage RDs and RTs and BGP peers just as you did with L3VPN, but the output will look different as each route also includes a type and potentially MAC addresses. Lots more BGP routes in the table, as you’re doing host-routes now. This can be managed by filtering type-2s at various boundaries.
How you handle traffic engineering depends on which underlay you pick. VxLAN isn’t really meant to do TE as you describe, as it’s designed to be used primarily in a local datacenter (not focused on latency or subrate provider circuits) with ECMP links and ideally no congestion. MPLS has conventional MPLS TE and if you go Segment Routing there’s SRTE. Both rely on your underlying IGP, which could be manipulated to force preferred paths or ECMP, but likely not to differentiate “workstation vs camera” traffic as in your example.