Will this work?
1. "Vote now!" is broadcast, including start time and stop times for vote.
2. Nodes receive the broadcast, make a snapshot of the current confirmed balance, and keeps that value until the stop time of the vote.
The price you pay, is that the unconfirmed balances in transit are not counted. Is this a big deal?
I cannot make snapshots of the whole ledger. The system must scale, this means that it should work with 1 and 10 and even 100 million accounts. So the ledger can potentially be several gigabytes in size. Making a snapshot of it every time somebody creates a poll is infeasible.