555 timer with relay im sure would work, i didn't really read your schematic
however are you going to override the up cycle with the down cycle too?
the problem is that if you push down for 2sec then override with up, the up cycle is going to keep running pushing the motor for the rest of the 35secs,,
the best options i can think of is to use a micro controller that remembers the position,
OR for a rookie,,, change the 555timer idea with a flip flop, then use 2 push-buttons or sensors to detect when roof is at max points, , and the sensor can RESET the flip flops, and you roof button can SET them