It's fine to use long-duration htlcs with nodes that *want* to. My node intentionally charges extra for long-duration htlcs, precisely to provide this service. If you don't want yours to do this, you can lower your max-cltv-expiry in LND's config file.
Discussion
It still causes force closes, especially for mobile wallets which aren't online all the time.
I can see how that can happen. Seems like it can be at least partly solved via push notifications.
We just need a way to charge for held htlcs. It should be base + amount * proportional_1 + time * amount * proportional_2
I found a way to do it: run two nodes. The first has a short max-cltv-expiry and charges low fees. The second has a long max-cltv-expiry and charges high fees. Voila, your charging extra for longer-held htlcs.
Pretty cool idea. Big nodes wont do this because it fragments liquidity but is good for privacy focused node runners that might already run multiple nodes.