Can't you make a smart contract that is effectively a subscription? And then you'd only need to sign it once?
The smart contract could allow the user to withdraw the unused ETH to cancel the subscription but the fact that it still requires the entire amount upfront makes it an extremely poor user experience.