I'm not the original poster, but I do have the same problem . . . although it really doesn't bother me in the same way it does the original poster. I'll try to shed some light on the specifics though. The drapery control I have is a Universal Window Covering Motor - Butler model 80 (x10 compatible). The reason I chose this control over the others you all noted was cost. It ran $70 to $80. The control is powered by a "wall wart" which I have plugged into an appliance module (on one drapery) and an x10 wall recepitacle on another. When you open or close the drape, the shutoff is activated by a lever switch which gets flipped mechanically. The x10 device remains powered. The opening or closing of the drape can take up to 20 seconds depending on the length of the curtains. If you turn off the x10 device while opening or closing, the drapes will stop immediately, and if you then turn the x10 back on, the drapes will continue in the same direction. Only at the limit of opening or closing will the lever switch get flipped, and the next cycle of the x10 will be in the reverse direction. The lever switch doesn't do anything to the x10, so it remains powered up. Only after you power down the x10 module, will the drapery control "reset", and the next power up of the x10 will activate the drapery control in the opposite direction.
The downside to the orginal poster (I'm guessing) was that you had to press off (and waiting a second or two for the drapery control to reset) before pressing on. I would guess that under program control you could issue an off command and wait a few seconds and then issue an on command to solve the problem. I don't have an automated system, so maybe someone can chime in to verify if this is possible. My problem with the system is similar, but more involved. I use my system on verticle blinds. In the closed position, I manually tilt the blinds closed. If you open the blinds with the tilt of the blinds closed, they stack up on each other and the drapery control motor will bind up (and probably burn out) if you allow it to run without manually changing the tilt of the blinds to open. ( I hope this makes sense, it's hard to describe.) This really doesn't present much of a problem to me . . . except when I have the blinds closed . . . we lose power . . . the x10 powers down . . . the drapery control resets . . . the power comes back on . . . the x10 powers up and the blinds open in the tilted closed postion and start stacking up on each other and likely going to burn out the drapery control motor. Is there a x10 module that will always come up in the off mode, even if it was in the on mode when power was removed (a power outage)? Sorry for the long winded explaination.