Do you know if there were active sessions when you initiated shutdown?
Hope you are aware of the fact that if you use "shutdown" oracle waits for
all active session to disconnect (but would prevent new connections) and
if you use "shutdown immediate" and If you did have any active session,
oracle still has to disconnect all those sessions and their active transaction.


Just a thought.