A ver, yo te pongo aquí una posible solución
Con menos válvulas y reemplazando por componentes eléctricos que son más baratos, el funcionamiento sería:
Cuando pulses los botones sin enclavamiento marcados como "pulsadores" (yo solo he puesto uno, tu pon dos en serie) el relé llamado setas, cerrará el contactor de mismo nombre, el cual activará el solenoide llamado "marcha" que conmutará la valvula 5/3 que hace extenderse al cilindro. Como esta válvula tiene un retorno por muelle, en cuanto dejes de pulsar alguno de los dos botones en serie, volverá a conmutar y aunque el cilindro esté a media carrera volverá a su posición inicial.
Si dejas pulsados los botones hasta el fin de carrera C1, el sensor activará el contactor llamado C1, que activará el solenoide "retro" que conmutará la valvula 3/2 que hará retornar al cilindro AUNQUE LAS SETAS DE ACCIONAMIENTO SIGAN PULSADAS, con esta configuración, una vez llegue a final de carrera el retorno es automático por narices.
Una vez hemos cumplido el ciclo, hay que volver a conmutar manualmente la valvula 3/2 para realizar el siguiente ciclo (como volver a ponerlo en ready), y volver a pulsar los dos botones sin enclavamiento para extender el cilindro.
¿Te vale así, o necesita el circuito alguna otra funcionalidad?