The only thing I can think of is to put unbound into debug mode and with increased verbosity to see what is occurring during its startup.
You will need to edit the unbound initscript so make sure to create a backup copy.
Edit /etc/rc.d/init.d/unbound
to change line number 577 from
loadproc /usr/sbin/unbound || exit $?
to
loadproc /usr/sbin/unbound -dd -vv || exit $?
Then run unboundctrl restart
The -dd puts unbound into debug mode and with two d’s it sends all the messages to the console (or ssh) terminal screen and nothing to syslog. It also leaves unbound in foreground mode.
On my vm testbed, that completed the restart in 5 secs, I got the following messages
Starting Unbound DNS Proxy...
[1748246886] unbound[5123:0] notice: Start of unbound 1.23.0.
May 26 10:08:06 unbound[5123:0] debug: module config: "validator iterator"
May 26 10:08:06 unbound[5123:0] debug: chdir to /etc/unbound
May 26 10:08:06 unbound[5123:0] debug: drop user privileges, run as nobody
May 26 10:08:06 unbound[5123:0] debug: switching log to stderr
May 26 10:08:06 unbound[5123:0] debug: Forward zone server list:
May 26 10:08:06 unbound[5123:0] info: DelegationPoint<.>: 0 names (0 missing), 5 addrs (0 result, 5 avail) parentNS
May 26 10:08:06 unbound[5123:0] debug: Reading root hints from /etc/unbound/root.hints
May 26 10:08:06 unbound[5123:0] info: DelegationPoint<.>: 13 names (0 missing), 26 addrs (0 result, 26 avail) parentNS
May 26 10:08:06 unbound[5123:0] notice: init module 0: validator
May 26 10:08:06 unbound[5123:0] notice: init module 1: iterator
May 26 10:08:06 unbound[5123:0] debug: target fetch policy for level 0 is 3
May 26 10:08:06 unbound[5123:0] debug: target fetch policy for level 1 is 2
May 26 10:08:06 unbound[5123:0] debug: target fetch policy for level 2 is 1
May 26 10:08:06 unbound[5123:0] debug: target fetch policy for level 3 is 0
May 26 10:08:06 unbound[5123:0] debug: target fetch policy for level 4 is 0
May 26 10:08:06 unbound[5123:0] debug: cache memory msg=66104 rrset=66104 infra=7952 val=66384
May 26 10:08:06 unbound[5123:0] info: start of service (unbound 1.23.0).
At this point it has started the unbound service.
Then press ctrl-c to stop unbound and you will get the following shutdown messages.
May 26 10:09:30 unbound[5123:0] info: service stopped (unbound 1.23.0).
May 26 10:09:30 unbound[5123:0] info: server stats for thread 0: 0 queries, 0 answers from cache, 0 recursions, 0 prefetch, 0 rejected by ip ratelimiting
May 26 10:09:30 unbound[5123:0] info: server stats for thread 0: requestlist max 0 avg 0 exceeded 0 jostled 0
May 26 10:09:30 unbound[5123:0] info: mesh has 0 recursion states (0 with reply, 0 detached), 0 waiting replies, 0 recursion replies sent, 0 replies dropped, 0 states jostled out
May 26 10:09:30 unbound[5123:0] debug: cache memory msg=66104 rrset=66104 infra=7952 val=66384
May 26 10:09:30 unbound[5123:0] debug: switching log to stderr [ OK ]
Then replace the original umbound initscript and run unboundctrl restart
so that unbound is started again in background mode.
Maybe in your debug messages there will be some clue as to what it is doing for those 6 minutes.