Repasando la teoría.. para que A* devuelva siempre el camino óptimo, h() debería devolver el coste del camino de coste mínimo desde el nodo actual a la meta. h() es la heurística.
h() debe ser siempre optimista( devuelve la menor distancia posible, o una menor a ésta) para que A* halle el resultado óptimo.
Si usas Manhattan como heurística(distancia del camino mínimo sin obstáculos), no estás teniendo en cuenta las casillas cintas transportadoras, y h() deja de ser optimista.
Creo que deberías cambiar tu función h() por una más compleja. Se me ocurre que podrías devolver el coste del camino en zig-zag mínimo, examinando cada celda, claro.