Creating a fake shade entity that wraps another?

I have a set of wireless shades and I’ve learned that occasionally the shades seem to “sleep”. That is, they don’t respond to the first command, but will respond to the second. Usually I handle this by doing something like this: press up, observe nothing is happening, then press down (to put the state of the shade back to down), then press up. This happens about once per day with a random shade.

I was thinking that I could create something that wraps the shade entity so that whenever up or down is pressed (either in home assistant, or in homekit, which access the shades through home assistant), I actually send two commands (up twice) or three (up, down, up).

I assume this means creating a cover template, with:
value_template, icon_template, availability_template set to the value of the underlying cover
open_cover, close_cover, etc. set to a script that sends the commands to the underlying cover twice

Does this make sense? Am I missing anything? Would there be any way to do this more automatically, rather than writing this out manually for 12 different covers?

That’s the way I’d do it. You don’t need to use scripts though. The cover action options will take a list of actions. e.g.

        open_cover:
          - service: script.open_source_cover
          - delay: 0.25 # adjust as necessary 
          - service: script.close_source_cover
          - delay: 0.25
          - service: script.open_source_cover
        close_cover:
          - service: script.close_source_cover
          - delay: 0.25
          - service: script.open_source_cover
          - delay: 0.25
          - service: script.close_source_cover