Here's my answers to the same questions:
1) The mod maintains a list of players who are meant to be playing, separately from the game (in a vote counter configuration page). It's actually a list of slots; if a player is replaced, then both the old player and new player are listed as part of the slot. So pretty much the same as you're doing.
2) Each vote has a drop-down box on the interface that allows the mod to override who it's voting for. If a player votes for someone who isn't the name of a player, the vote counter warns the moderator and refuses to count the vote until that particular vote is overridden. Abbreviations for player names can be added to the list of players in a slot in order to automatically recognise those abbreviations.
3) The counter will consider any text that's bolded (including via use of the "vote" tag), and contains the word "vote", as a vote or unvote. It will check to see if votes or unvotes happen later in the bolded region in order to determine whether something is a vote or unvote (thus, it isn't fooled by something like "
Unvote: callforjudgement
"). In cases where it thinks there might be a vote but there isn't (e.g.
Mod: I think callforjudgement has 4 votes, not 5
, it will recognise it as a potential vote and ask the mod to override it as a vote for a particular player / no lynch, unvote, or not a vote.
WRT xtopherusD's question:
4) It ignores all quoted text when counting votes.
(Here's a fifth issue that actually came up in practice: what happens if someone votes in spoiler tags? My vote counter counts it, at least.)