Can you capture a few thread dumps before and after you issue the shutdown with the active MDB? Hopefully this will show exactly what the MDB (or perhaps another component) is doing to prevent shutdown.
if server is shutting down when MDB is processing messages then server tries to wait some time for MDB to finish processing of messages. This time depends on the type of business logic in MDB, number of MDB sessions, whether MDB is consuming messages from remote WF10/Artemis broker and if it's calling some EJB logic.
As Justin mentioned suggested, to create some thread dumps is the best way to see what's cause of those long shutdowns.