Rephrasing the requirement as "extend the voting period by 24 hours if at least half of the Council members haven't voted" leads to a simpler implementation:

```python
vote_count = poll.users_voted.all().count()
missing_vote_count = User.objects.filter(groups=poll.valid_groups).count()
half_voted = vote_count <  missing_vote_count
```

The nice part of this is that you avoid issues with float conversion, but I haven't thought out all the edge cases. Feel free to strike me down. :P