[Motorola Droid 3] Xenoproctologist:
When the D3 is connected to a bluetooth PAN, the dnsmasq service immediately starts maxing out one of the CPU cores, which drains the battery. I did a little poking around, but exhausted my knowledge of the Android platform pretty quickly. Here's what little I've got...

"ps | grep dnsmasq":

24584 nobody 964 R /system/bin/dnsmasq -C /system/etc/btpan.conf

btpan.conf:

keep-in-foreground

# Disable DNS service
port=0

# Only accept DHCP request from above interface
bind-interfaces

# Override the default route supplied by dnsmasq and send no default
# route at all. Note that this only works for the options sent by
# default (1, 3, 6, 12, 28) the same line will send a zero-length option
# for all other option numbers.
#dhcp-option=3

pid-file=/data/dnsmasq.pid

# The DHCP server needs somewhere on disk to keep its lease database.
# This defaults to a sane location, but if you want to change it, use
# the line below.
dhcp-leasefile=/data/btdnsmasq.leases

dhcp-range=192.168.0.65,192.168.0.127,12h
dhcp-option = option:router,192.168.0.1

# put IP Range, DNS information in seperate file, as it is dynamic
# Example:
# dhcp-option = option:dns-server,a.b.c.d,e.f.g.h
conf-file=/data/btip.conf

logcat output during connect/disconnect of an iPad. I truncated the error messages; just imagine about 1.5MB/sec of "unknown cmd" repeating where I placed the ellipsis:

08-12 14:30:57.138 249 25747 E BluetoothEventLoop.cpp: event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/25743/hci0/dev_A4_67_06_1F_9F_07
08-12 14:30:57.818 249 25747 I BluetoothEventLoop.cpp: agent_event_filter: Received method org.bluez.Agent:Authorize
08-12 14:30:57.826 249 25747 I BluetoothEventLoop: Allowing incoming A2DP / AVRCP connection from A4:67:06:1F:9F:07
08-12 14:30:57.826 249 25747 D BluetoothEventLoop: onAgentAuthorize(/org/bluez/25743/hci0/dev_A4_67_06_1F_9F_07, 0000110C-0000-1000-8000-00805F9B34FB) = true
08-12 14:30:57.865 249 366 I EventHub: New keyboard: device->id=0x80004 devname='AVRCP' propName='hw.keyboards.524292.devname' keylayout='/system/usr/keylayout/AVRCP.kl'
08-12 14:30:57.865 249 366 I EventHub: New device: path=/dev/input/event7 name=AVRCP id=0x80004 (of 0x5) index=5 fd=246 classes=0x1
08-12 14:30:57.865 249 366 I InputReader: Device added: id=0x80004, name=AVRCP, sources=00000101
08-12 14:30:57.865 249 366 I InputManager-Callbacks: No input device calibration properties found for device AVRCP.
08-12 14:30:57.881 249 25747 E BluetoothEventLoop.cpp: event_filter: Received signal org.bluez.Control:Connected from /org/bluez/25743/hci0/dev_A4_67_06_1F_9F_07
08-12 14:30:57.881 249 25747 I BluetoothHidService.cpp: hid_event_filter() called
08-12 14:30:57.881 249 25747 E BluetoothHidService.cpp: Checking for signal
08-12 14:30:57.881 249 25747 E BluetoothHidService.cpp: Checking for property changed
08-12 14:30:57.881 249 25747 W BluetoothHidService.cpp: Ignore signals other than PropertyChanged.
08-12 14:30:57.888 249 25747 E BluetoothEventLoop.cpp: event_filter: Received signal org.bluez.Control:PropertyChanged from /org/bluez/25743/hci0/dev_A4_67_06_1F_9F_07
08-12 14:30:57.888 249 25747 I BluetoothHidService.cpp: hid_event_filter() called
08-12 14:30:57.888 249 25747 E BluetoothHidService.cpp: Checking for signal
08-12 14:30:57.888 249 25747 E BluetoothHidService.cpp: Checking for property changed
08-12 14:30:57.888 249 25747 W BluetoothHidService.cpp: Ignore signals other than PropertyChanged.
08-12 14:30:57.928 20575 20575 V BluetoothEventRedirector: Received com.motorola.android.bluetooth.pan.intent.action.ACTION_STATE_CHANGED
08-12 14:30:57.928 249 267 W BluetoothPanService: dns1 IP Address is an invalid format!
08-12 14:30:57.935 249 267 W BluetoothPanService: dns2 IP Address is an invalid format!
08-12 14:30:57.943 249 369 D Tethering: bnep0 is not a tetherable iface, ignoring
08-12 14:30:57.974 20575 20575 E BluetoothEventRedirector: Action state change for pan received
08-12 14:30:57.974 26098 26098 I dnsmasq : started, version 2.51 DNS disabled
08-12 14:30:57.974 26098 26098 I dnsmasq : compile time options: no-IPv6 GNU-getopt no-DBus no-I18N DHCP no-scripts no-TFTP
08-12 14:30:57.974 26098 26098 I dnsmasq : DHCP, IP range 192.168.0.65 -- 192.168.0.127, lease time 12h
08-12 14:30:57.974 26098 26098 E dnsmasq : Unknown cmd ''
08-12 14:30:57.974 26098 26098 E dnsmasq : Unknown cmd ''
08-12 14:30:57.974 26098 26098 E dnsmasq : Unknown cmd ''
08-12 14:30:57.974 26098 26098 E dnsmasq : Unknown cmd ''
08-12 14:30:57.974 26098 26098 E dnsmasq : Unknown cmd ''

[...]

08-12 14:30:59.888 26098 26098 E dnsmasq : Unknown cmd ''
08-12 14:30:59.888 26098 26098 E dnsmasq : Unknown cmd ''
08-12 14:30:59.888 26098 26098 E dnsmasq : Unknown cmd ''
08-12 14:30:59.888 26098 26098 E dnsmasq : Unknown cmd ''
08-12 14:30:59.888 26098 26098 E dnsmasq : Unknown cmd ''
08-12 14:30:59.888 26098 26098 I dnsmasq : exiting on receipt of SIGTERM
08-12 14:30:59.896 20575 20575 V BluetoothEventRedirector: Received com.motorola.android.bluetooth.pan.intent.action.ACTION_STATE_CHANGED
08-12 14:30:59.896 20575 20575 E BluetoothEventRedirector: Action state change for pan received
08-12 14:30:59.896 20575 20575 D CachedBluetoothDevice: onProfileStateChanged:[]
08-12 14:30:59.904 249 366 I EventHub: Removed device: path=/dev/input/event7 name=AVRCP id=0x80004 (of 0x5) index=6 fd=246 classes=0x1
08-12 14:30:59.920 249 366 I InputReader: Device removed: id=0x80004, name=AVRCP, sources=00000101
08-12 14:30:59.928 249 25747 E BluetoothEventLoop.cpp: event_filter: Received signal org.bluez.Control:Disconnected from /org/bluez/25743/hci0/dev_A4_67_06_1F_9F_07
08-12 14:30:59.928 249 369 E Tethering: attempting to remove unknown iface (bnep0), ignoring
08-12 14:30:59.935 249 25747 I BluetoothHidService.cpp: hid_event_filter() called
08-12 14:30:59.935 249 25747 E BluetoothHidService.cpp: Checking for signal
08-12 14:30:59.935 249 25747 E BluetoothHidService.cpp: Checking for property changed
08-12 14:30:59.935 249 25747 W BluetoothHidService.cpp: Ignore signals other than PropertyChanged.
08-12 14:30:59.935 249 25747 E BluetoothEventLoop.cpp: event_filter: Received signal org.bluez.Control:PropertyChanged from /org/bluez/25743/hci0/dev_A4_67_06_1F_9F_07
08-12 14:30:59.935 249 25747 I BluetoothHidService.cpp: hid_event_filter() called
08-12 14:30:59.935 249 25747 E BluetoothHidService.cpp: Checking for signal
08-12 14:30:59.935 249 25747 E BluetoothHidService.cpp: Checking for property changed
08-12 14:30:59.935 249 25747 W BluetoothHidService.cpp: Ignore signals other than PropertyChanged.
08-12 14:30:59.990 249 267 E BluetoothPanService: start pan service NAP
08-12 14:30:59.990 249 267 E PanService.cpp: acceptNative
08-12 14:30:59.998 249 26115 E PanService.cpp: w20580: old lm mode is 0x0000.
08-12 14:30:59.998 249 26115 E PanService.cpp: w20580: new lm mode is 0x0026.

I'm fully aware that this likely can't be fixed until we get root, due to /data/btip.conf being inaccessible; that said, I figured I'd throw this out there so that more knowledgeable people than I might mull it over.