This sounds like it's related to https://bugs.launchpad.net/tripleo/+bug/1915761. This should be fixed in the latest versions and we did backport it to Train. So it'd be interesting to see if you're missing some of these patches. We've had reports of updates taking about 4.5 hours with newer versions of train to update so the numbers you have seem to point to possibly missing patches related to that bug or an execution configuration problem.Additionally in newer versions we switched the execution strategy to try and speed things up as well which should be available in the latest versions of train/ussuri due to https://review.opendev.org/q/topic:%22strategy-improvements%22+(status:open%20OR%20status:merged)
Are you running ansible-playbook by hand? And do you have a ansible.cfg? We added an `openstack tripleo config generate ansible` command that'll generate a starting ansible.cfg that's similar to what we have in the mistral execution.