All of the solutions you mention are based on RDP, so your experience will be very similar on any of them. The critical component will be your connectivity and latency to Azure, if this is not good enough then the experience will be sub-par.
Bastion implements your RDP connection in the browser, which generally will not perform as well as the native RDP client, so you may want to consider using RDP or WVD.