I have been doing a lot of testing and I am convinced that this issue is not mod specific. I am also pretty certain that this has nothing to do with BattleEye - since the no shutdown issue has been present for some months now prior to BE installation.
The mods I am running currently are A3MP (map pack), Drift No fatigue, Jurassic Arma - Raptor Pack and Reduced Weapon Sway. It appears to relate to mod load timing and memory allocation rather than any specific mod. With vanilla Arma3 (no mods) - A3 shuts down fine.
Interestingly I have noticed that Steam In-game Overlay process - gameoverlayui.exe start up is delayed when mods are being loaded and that it takes a longer than normal time to shut down when the Arma3 process is killed or when A3 terminates normally when no mods are running.
< 45 minutes later
Having monitored Steam GameOverlayUI shut down timing it seems this process does not terminate smoothly as indicated above once Steam detects Arma3 process termination. Process monitor indicates multiple attempts to shut down this exec.
So I'm pretty sure after more testing that this issue relates to the GameOverlayUI. If I switch off Steam overlay In-game (Steam>Settings>In-Game>Uncheck box) and then fire up Arma3 with multiple mods - Arma3 appears to shut down normally.
It is possible that the GameOverlayUI process 'stalls' after a lengthy Arma3 start up. The only thing I can think of is that when A3 loads mods there is a start up timing issue due to mod loading time and probably a related memory allocation/address problem.
Anyway hope this is of some help.