Isn't it simpler to create the complete rotated square and simply add it to the selem_square:
    
    c = (m + 2 * n - 1) / 2
    selem_rotated = np.zeros((m + 2 * n, m + 2 * n), dtype=np.uint8)
    selem_rotated[0, c] = selem_rotated[-1, c] = selem_trotated[c, 0] = selem_rotated[c, -1] = 0
    selem_rotated = convex_hull_image(selem_rotated).astype(int)
    return selem_square + selem_rotated

(not tested)