Ansible isn't doing anything magic around Windows Updates (other than synchronous application)- we're just using the Windows Update client API, so it should take about the same amount of time via Ansible as it would to do it interactively. If you're doing something like booting a 2008R2 RTM image and hitting it with win_updates, it may possibly take hours and numerous reboots...
Running from a local WSUS server instead of public Windows Update servers can shave a HUGE amount of time off the process as well- public WU servers have extremely variable performance. In my testing when building win_updates, during peak times, just doing an update check on a fully-patched host against public WU could take upwards of 10min, where using WSUS would be 15-30sec.
Do you have any other specific asks about win_updates around perf (besides "make it faster", as we're pretty much at Microsoft's mercy on that one)? The only one we've gotten a few times (that I'll probably try to do something about in 2.3) is to allow idempotent application of a list of specific updates (eg, emergency vulnerability mitigation).
-Matt