What's the purpose of doing this? If you're using Iodine it's presumably because normal HTTPS traffic won't work (e.g. captive portal), so tunneling your DNS back over HTTPS again is bound to fail in this scenario. It seems to me this would only work if the captive portal whitelisted known DoH servers (which seems rather unlikely).
TCP over TCP has always had serious performance issues, because the congestion controls combine in toxic ways. SSH tunnels that connect to something other than localhost on the remote end have similar problems (i.e. ssh -D 1080 as a SOCKS proxy).
I've found some mobile carriers still let you query external dns servers when you have a $0 balance, They were man in the middling the http traffic to present the 'You have no balance' page. Iodine and it's android fork andiodine became very useful tools- Facebook Messinger inside links over ssh\mosh via TCP over DNS = Free Phone
If you can't send DNS packets directly to a remote resolver, do not expect bandwidth or stability for normal applications like a web browser. Use it for something like IMAP/SMTP, or browsing with lynx/links/w3m, or one-shot ssh commands, rsync, git, etc.
Aside from it not working very well for the reason dbt00 mentioned, wouldn't it only work on captive portals that don't block a DoH server? That seems unlikely, at least until DoH is much more widespread.