[Nexus 7 Q&A, Help & Troubleshooting] SW686:
If you still see the problem in airplane mode then I'd suggest running all tests in airplane mode. The more factors you can eliminate, the better.

I ran my 16GB wifi N7 (CM10.1) in airplane mode for ~6.5hrs and this is what my stats looked like:

===================
General Information
===================
BetterBatteryStats version: 1.13.4.0
Creation Date: 2013-05-02 19:54:42
Statistic Type: Custom to Current
Since 6 h 31 m 16 s
VERSION.RELEASE: 4.2.2
BRAND: Google
DEVICE: grouper
MANUFACTURER: Asus
MODEL: Nexus 7
OS.VERSION: 3.1.10-g5f0f8fd
BOOTLOADER: 4.18
HARDWARE: grouper
FINGERPRINT: google/nakasi/grouper:4.2.2/JDQ39/573038:user/release-keys
ID: JDQ39
TAGS: test-keys
USER: owner
PRODUCT: nakasi
RADIO:
Rooted: true
============
Battery Info
============
Level lost [%]: Bat.: 0% (100% to 100%) [0.0%/h]
Voltage lost [mV]: (4130-4119) [1.7%/h]
===========
Other Usage
===========
Deep Sleep (): 6 h 29 m 29 s (23369 s) Ratio: 99.5%
Awake (): 1 m 47 s (107 s) Ratio: 0.5%
Screen On (): 59 s (59 s) Ratio: 0.3%
Wifi On (): 13 s (13 s) Ratio: 0.1%
Wifi Running (): 12 s (12 s) Ratio: 0.1%
No Data Connection (): 6 h 31 m 16 s (23476 s) Ratio: 100.0%
No or Unknown Signal (): 6 h 31 m 16 s (23476 s) Ratio: 100.0%
Screen dark (): 53 s (53 s) Ratio: 0.2%
Screen dimmed (): 5 s (5 s) Ratio: 0.0%
=========
Wakelocks
=========
ConnectivityService (Android System): 42 s (42 s) Count:79 0.2%
AudioOut_2 (1013): 29 s (29 s) Count:8 0.1%
AlarmManager (Android System): 3 s (3 s) Count:78 0.0%
SCREEN_FROZEN (Android System): 2 s (2 s) Count:7 0.0%
Event Log Service (Google Services): 1 s (1 s) Count:18 0.0%
================
Kernel Wakelocks
================
"PowerManagerService" (): 27 s (27 s) Cnt:(c/wc/ec)32/0/0 0.1%
"alarm_rtc" (): 14 s (14 s) Cnt:(c/wc/ec)23/0/6 0.1%
"alarm" (): 2 s (2 s) Cnt:(c/wc/ec)35/17/0 0.0%
"PowerManagerService.Broadcasts" (): (0 s) Cnt:(c/wc/ec)2/0/0 0.0%
"KeyEvents" (): (0 s) Cnt:(c/wc/ec)144/0/0 0.0%
"event1-499" (system, com.google.android.syncadapters.contacts, com.google.android.gsf, com.android.location.fused): (0 s) Cnt:(c/wc/ec)2/0/0 0.0%
======================
Alarms (requires root)
======================
======================
Network (requires root)
======================
==========
CPU States
==========
51 MHz (): 20 s 0.1%
102 MHz (): 1 s 0.0%
204 MHz (): 0.0%
340 MHz (): 43 s 0.2%
475 MHz (): 14 s 0.1%
640 MHz (): 5 s 0.0%
760 MHz (): 1 s 0.0%
860 MHz (): 0.0%
1 GHz (): 1 s 0.0%
1.1 GHz (): 0.0%
1.2 GHz (): 10 s 0.0%
1.3 GHz (): 7 s 0.0%
Deep Sleep (): 6 h 29 m 29 s 99.5%
==================
Reference overview
==================
ref_unplugged: Reference ref_unplugged created 2 m 50 s (Wl: 7 elements; KWl: 9elements; NetS: null; Alrm: null; Proc: 1 elements; Oth: 8 elements; CPU: 12 elements)
ref_charged: Reference ref_charged created 2 m 50 s (Wl: 7 elements; KWl: 9elements; NetS: null; Alrm: null; Proc: 1 elements; Oth: 8 elements; CPU: 12 elements)
ref_custom: Reference ref_custom created 2 m 59 s (Wl: 7 elements; KWl: 9elements; NetS: null; Alrm: null; Proc: 1 elements; Oth: 8 elements; CPU: 12 elements)
ref_current: Reference ref_current created 6 h 34 m 16 s (Wl: 10 elements; KWl: 8elements; NetS: null; Alrm: null; Proc: 2 elements; Oth: 9 elements; CPU: 13 elements)

Similarly, nothing in your offline test shows more than a few minutes' worth of system activity.

Franco's kernel is "supposed" to work on the tilapia but it might be worth reverting the whole unit to stock just to prove it isn't a software problem. Not sure what else to try at this point.

Can you slow-charge the unit from a PC's USB port, preferably for 24hrs, so you know for sure it's really starting at a full charge?