I've never tried to handle signals in vim. I don't know if it can be done. Here is one possible alternative:
Option: Use just one vim process
Perhaps instead of opening a ton of vim processes, you can open a bunch of tabs in gvim (or vim). That way, when you want to quit you can do :wqa
(write and quit all).
It is easier to open tabs in vim if you do the following in your vimrc file:
:map <C-Insert> :tabnew<C-M>
:map <C-Delete> :tabclose<C-M>
:map <C-PgUp> :tabprev<C-M>
:map <C-PgDown> :tabnext<C-M>
The bindings above will allow Ctrl-insert and Ctrl-delete to open and close tabs, and Ctrl-pgup/pgdown will move between tabs much like firefox.
If you wanted those bindings to work in insert mode as well, you could do something like this in your vimrc file
:imap <C-Insert> <C-o>:tabnew<C-M>
:imap <C-Delete> <C-o>:tabclose<C-M>
:imap <C-PgUp> <C-o>:tabprev<C-M>
:imap <C-PgDown> <C-o>:tabnext<C-M>