You could assign him the weapon at the trigger where the eject is, then he would have the weapon and won't stuck. It's not the "eyecandy" way, but it works.
You need a script for it, here is the code for it with fading out/in:
cutText ["", "BLACK", 0];
sleep 3;
setDate [2014, 7, 01, 06, 0]
cutText ["", "BLACK FADED", 0];
sleep 0.1;
cutText ["", "BLACK IN", 3];
I unpboed your mission and looked by myself. The player does not have any animation. If you eject and then use the command player switchmove "", then it works again. Did you somewhere changed his animation?
Edit: Now I have it: You gave the player a weapon that doesn't work in water, so there is no animation for it and he stucks. I deleted the line where you add him that rife, and it works again.
Edit 2: this addWeapon "arifle_SDAR_F"; <- the only weapon that works in water only with it it won't stuck.
Give the trigger a name, e.g. "smoketrigger"
Condition: count (position smoketrigger nearObjects ["SmokeShell",10])!=0
onAct: xyz
onDea: xyz
This will trigger when a white smoke flies in the trigger, not when it popps. But I guess it's the "same" :D
In your case: SmokeShellBlue
http://forums.bistudio.com/showthread.php?65589-Smoke-Grenade-Trigger-Question