Before anything else, you should take some time to think about how unreasonably long the on-air time of a packet with 18 payload bytes at SF11 or SF12 actually is. Even at SF10 it’s pretty long.
Also, LoRaWAN confirmed uplink isn’t very well thought out, as if its the ack that is lost, the node will never get another for that sequence number and instead will simply retry until its give up limit. Generally you’re better off doing your own application-level confirmation, not only because of that, but because for many applications it make as much sense to retry with fresher data as it does to keep trying to get increasingly stale data through.
And regardless if a confirming downlink is network-level or application-level, it’s still a very large cost on gateway capacity, since a gateway cannot receive on any channel while it is transmitting a downlink.