Hi Neal,
Thanks for posting the stacktrace, it really helps.
It appears you are mounting a database that has mixed log and data in the database map (or it's an archive database.) This is noteworthy as active allocations and deallocations of allocation pages (AP) are marked on the AP itself as a marker it is being updated. Since this is going through recovery, any existing marks on the AP need to be cleared.
Essentially what is happening is every 256th page (AP) is going to be scanned and checked/reset this this mark.
This activity only takes place on a mixed log and data database and also archive databases. Some extra considerations are done if this is ASE Cluster Edition.
In essence, the slower the disk IO and larger the database (if MLD or archive database) this can contribute to a longer recovery time than a non-archive, separated data and log database.
HTH
Dan