Chris, i have thinking about this. And actually i know why i dont (and dont want to) append time to overriden device / ad-hoc builds.
And this is just because of enterprise adhoc builds. Let me explain.
When you do adhoc build what you want is a unique identifer to trace the build your are releasing. You cant use the version number because you could make multiple builds per version.
For example if i start working on 1.1.0 i might have 20 builds before i am ok to publish the official 1.1.0
So here is what i do
my adhoc builds are incremented from 1 without any relation to the version number.
So as a example when i start i am on version 1.0.0 build version 1:
- CFBundleVersion: 1
- CFBundleShortVersionString: "1.0.0"
- android:versionCode:1
-android:versionName:"1.0.0"

i do 20 builds up to 1.0.0 build 20 to finally be ready, then i publish (appstore):
- CFBundleVersion: 1.0.0
- CFBundleShortVersionString: "1.0.0"
- android:versionCode:20 (this one has to be an integer i think, that s why i stay at 20 to make sure the google store sees it as un update. it doesnt use android:versionName i think)
- android:versionName:"1.0.0"

Then i start working on 1.1.0 by publishing my first adhoc build
- CFBundleVersion: 21
- CFBundleShortVersionString: "1.1.0"
- android:versionCode:21
-android:versionName:"1.1.0"

This is a great way to track your builds, and it works perfectly with systems like jenkins/testflight/hockeyapp

I am not saying that to tell you how to do it, just so you know why i changed what i changed ;)