I think you can just make a codeless kext with a plist like this one:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleUSBHub1009</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleGetInfoString</key>
<string>1.0, Copyright © 2011 Apple Inc. All Rights Reserved.</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>IOKitPersonalities</key>
<dict>
<key>Hub1009</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleUSBHostMergeProperties</string>
<key>IOClass</key>
<string>AppleUSBHostMergeProperties</string>
<key>IOProviderClass</key>
<string>IOUSBHostDevice</string>
<key>idProduct</key>
<real>1544</real>
<key>idVendor</key>
<integer>1234</integer>
<key>IOProviderMergeProperties</key>
<dict>
<key>kUSBWakePortCurrentLimit</key>
<integer>1100</integer>
<key>kUSBSleepPortCurrentLimit</key>
<integer>1100</integer>
<key>kUSBHubPowerSupply</key>
<integer>1300</integer>
</dict>
</dict>
</dict>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.iokit.IOUSBHostFamily</key>
<string>1.01</string>
<key>com.apple.kpi.iokit</key>
<string>10.4.2</string>
</dict>
<key>OSBundleRequired</key>
<string>Root</string>
</dict>
</plist>
I added a tiny amount of code. My driver is a subclass of IOService, and overrides Start(), just so I can see it logging. I think, but have not checked, that the AppleUSBHostMergeProperties driver returns an error from its Start (but first merges the properties).
The downside of course is that dexts are not loaded until after boot time, so your dext usually has no effect because the system has already loaded a driver for the hub by the time your dext is available. If you plug the hub in after boot time, the codeless dext will be instantiated. (FB12048885)