I have suffered from this problem from day one where a couple of my light strips disconnect in the app and ISY and where you cant even turn them on or off with the button. The only way I could get this to work is unplug them then plug them back in.
I did some searching on this and found someone who found a fix so I thought I would share this.
Basically, you block WAN access to the devices and control them over an API. If you are ONLY using the KASA app, and not another controller such as HomeAssistant, SmartThings, Hubitat or whatever, this ISN'T going to work for you. Anyways, here's the steps to complete it for a user that may not be super savvy.
1. Login to your router and check the DHCP scope. It'll probably be 192.168.1.100 - 192.168.1.199 or something. Basically you want to ensure there's at least a good handful of IPs in the subnet (which is 1-255) that ARE NOT in the scope. Remember what they are.
2. Go to your DHCP leases table (or something like that), note down the IP addresses and MACs of the KL400's you're using.
3. Probably somewhere in the DHCP settings, you'll have somewhere you can "reserve an IP address by MAC". You want to then set all your KL400's to one of the IPs NOT in your DHCP scope (ideally). I'd keep them all together, such as .210, .211, .212, etc..
4. Probably under firewall, or security, or something like that, you'll be able to "block" WAN (or Internet) access to those devices.
5. Done.
The app appears to be causing a problem. After blocking internet access to each light strip I have not had a single disconnect! The lights still function with ISY and HA as well as the Kasa app.