My answer to #1:
A normal FIR filter does not necessarily have its phase response ending at plus or minus a multiple of $\pi$. A linear phase FIR filter specifically would have its phase ending at a multiple of $-\pi/2$ (or positive if the phase isn't unwrapped). This is explained as follows:
As explained here, the delay in samples for linear phase FIR filters is $(N-1)/2$ where $N$ is the number of coefficients in the filter.
One sample delay has a phase response that extends from $0$ at DC to $\pi$ at $f_s/2$ where $f_s$ is the sampling rate. This is consistent with the Fourier Transform of a sample delay $T=1/f_s$ as:
$$\delta(t-T) \rightarrow e^{-j 2 \pi f T}$$
And more directly, the z-Transform of a sample delay where we see the same result:
$$z^{-1} \rightarrow e^{-j2\pi f/f_s}$$
Therefore the phase for any linear phase filter of $N$ taps will go from $0$ to $-(N-1)\pi/2$. Thus for an odd number of taps the phase will "end" at $f_s/2$ at a multiple of $-\pi$, and for ean even number of taps it will be a multiple of $-\pi/2$.
The completely linear phase in the result can only occur with complex conjugate symmetric or antisymmetric coefficients, which would all have the resulting linear phase slope (delay) as I outlined above. Therefore, there appears to be an error in the measurement of what represents phase or the frequency axis is not extending to $f_s/2$.
I note that if the output of the filter was decimated by $D$, the resulting phase slope would also be reduced by a factor $D$. If the OP is measuring the phase response by comparing the input and output, then this could also be an explanation, except in that case we would see the phase extend to $-(N-1)\pi/(2D)$ with integer $D$, which also does not appear to be the case in the result.
The other possibility is a parasitic time delay in the measurement; if we had the actual coefficients and specific details of the measurement approach, we could determine what the error is versus expected which may further refine the different theories.
As for Answer #2, Peter has provided a very good answer and received my upvote - the OP's result is a good example of why not to use the IFFT to determine the impulse response (this is the frequency sampling method of frequency design which is most intuitive but worst choice in most applications for estimating the impulse response for the filter: it will have large error deviations vs other approaches except for the specific frequencies sampled, as I detail further at this post). What Peter chose (least squares) is my favorite approach for an optimum estimate in the least squares sense.
fftshift()
, or are you using the impulse response exactly as seen in the picture? $\endgroup$