I looked through the code and realized it was calling findmyiphone for each device every minute, which would turn on the GPS radio and quickly drain the battery.
Here is a custom_component, icloud2.py, that fixes the issues with the current component. It will only update the device based on the calculated interval, and will also filter the devices on your iCloud account to only track phones.
To use, put icloud2.py in your /custom_components/device_tracker/ directory
Add to your config:
device_tracker: - platform: icloud2 username: !secret icloud_username password: !secret icloud_password account_name: !secret icloud_descriptive_name filter_devices: 'phone'
EDIT: icloud2 v1.1 update (links updated above too, there was a bug from when I was prepping it for release, that stopped it from updating location on each interval update.
EDIT2: Moved from hastebin links over to github.