Pues yo lo veo muy bien, sólo se me ocurren tres detalles más.
a) No usar pull, para eso es mejor fetch + rebase.
b) No es necesario mezclar develop con master sólo para hacer deploy, al menos no en la etapa donde es posible esperar por errores.
En esa parte es conveniente empujar directamente develop como si fuera master, para no crear commits innecesarios, ya que el baile de los parches bien podría llevarse en develop únicamente.
c) Eventualmente y por feature, o grupo de features es conveniente hacer rebase interactivo, para reducir la cantidad de commits y tener un historial más limpio.