You don't want to check if the timer exists already, just update it if it does. Remove the check, and give the timer a name. This way you will only call your alias a single time after the last quit.
Your haltdef should be within your if statement, you only want to block the netsplit quits.
If enough users quit, your global nick variable may become too large. You'll want to check the size, and start another variable. Or use a different structure.
You don't need to pass $1- to your alias, it should just read from the global variable(s). Since nothing is passed to the alias, don't echo $1.