Unfortunately by its very nature automated scanning of web apps takes a significant amount of time.
We're trying to test apps as thoroughly as possible, that means we have to send a lot of requests.
The blog post you pointed to is still a good starting point, but there are some more recent changes that may help.
If you know what technology your app uses (and hopefully you do;) then define a context for your app and define the tech it uses:
https://github.com/zaproxy/zap-core-help/wiki/HelpUiDialogsSessionContexts#technologyTests that are specific to a tech that you dont use will not be run.
Theres no point looking for LDAP issues if you're not using LDAP :)
Does you app have any data driven content?
If so then you can now configure ZAP to understand it:
https://github.com/zaproxy/zap-core-help/wiki/HelpStartConceptsDdcWe also have statistics which show how long each of the scan rules took.
You can see this displayed in out wavsep tests. eg
http://zapbot.github.io/zap-mgmt-scripts/reports/wavsep-1.5-weekly-All-M-M.html - the pie charts and table towards the end of the file.
How are you seeding with Senenium - is this using the ZAP Ajax Spider or your own regressions tests?
And how many nodes does the traditional spider find?
If you want a quick scan then try the ZAP Baseline scan:
https://github.com/zaproxy/zaproxy/wiki/ZAP-Baseline-ScanThis only spiders for minutes (by default 1) and only does passive scanning.
Obviously it will find less problems that the scan you are currently performing.
Cheers,
Simon