Well that's not exactly what I had in mind. You said locktime can be used on the transactions to force a delay of it being included into a block until a particular time, but what if you change your mind and decide not to continue paying for the service?
If I've sent transaction A, and I want to cancel subscription, I only have to spend transaction B's coins and invalidate the subscription-tx-chain.
Although another challenge that would be faced with any subscription strategy is where you would like to subscribe for multiple months in advance so that you don't have to remember to make a transaction every month, but you only have funds for let's say 2 months or something. The software would have to be intelligent enough to create more locktime transactions on top of those, when additional funds come, if you want it to allocate the money there.
The software needn't to be so intelligent, because even if that would be the case, you wouldn't want from the software to select inputs and create locktime transactions the moment you receive some additional money. You would want it to do that with only coins you approve of. I may not want to use the money a friend owed me to immediately create a transaction paying subscription for an additional month; only when I approve it. So, you could just use a separate account from your derivation path, specifically for subscription-based services.
Third challenge is similar to the second, you have multiple months paid in advance but you have not left any more UTXOs unlocked for you to make other transactions to unrelated stuff, so making any transaction means the entire subscription chain needs to be invalidated and re-constructed. So I guess its as easy to solve as the other challenges.
No problem. Spend the subscription coins if you need them now, but take into consideration that you have to either fill the subscription account (from your wallet) soon or you will get less months automatically paid.
Fourth challenge and I think this is the most concerning one is, what if you create the subscription chain, and everything is fine except one month later, fees have shot up and your fee is too low to get it confirmed quickly.
Quick solution: create several transactions paying various fees, each of which comes with a tree of its future transactions. If you wanted to pay a subscription of 12 months, you would create TX A1, TX A2, TX A3 (with low, medium, high fee respectively). Your wallet software will check the mempool at the time of TX broadcasting, and will select which transaction fits best. If A2 is selected, for example, then it does the same for TX B2,1, B2,2, B2,3. Then for C the same, it goes on and on.
You'd need to have signed 3^1 (A-s) + 3^2 (B-s) + 3^3 (C-s) + ... + 3^12 (L-s) = 797160 transactions though.