Maybe a script, bash or other, that runs every X minutes (maybe with do ... until sleep X, or scheduled elsewhere to run every X minutes), pings your router or some always-up site, and if ping fails then setup an adhoc network? Or instead of ping, maybe ifquery? But ping can fail even when the interace is "up".
I'm not sure about why your tablet's not getting an IP address, maybe DHCP isn't activating correctly, setting a manual/fixed IP & settings should work though.
(Comment to answer)