If you are using Windows, you can use the [Microsoft Keyboard Layout Creator][1] tool to make your own layout; you will need administrator access to install it, however, and then you will have to switch to it.

As you noticed, however, no layout can cover the entire range of unicode characters.

What I have done is create an AutoHotKey script like this:

    ::\exists::
        SendUnicode("∃")
        return
    ::\forall::
        SendUnicode("∀")
        return
    
    SendUnicode(char){
        ;send unicode encoding to clipboard
        ;because that's the only way AHK can
        ;encode Unicode. wtf
        Transform, Clipboard, Unicode, %char%
        SendInput ^v
        return
        ;my attempts to not lose the clipboard
        ;contents at this point have given
        ;inconsistent results so far.
    }

I would share the whole list of bindings I've written, but it really is an inelegant, ugly kludge. However, it might do the trick for you.

If you aren't using Windows, this approach should still be available to you through other software. However, I've already used all of my link allowance. :)

  [1]: http://www.microsoft.com/globaldev/tools/msklc.mspx