How to cascade two filters?
You can easily verify yourself that the following two ways of cascading two filters are equivalent (up to numerical inaccuracies):


% method 1
y1 = filter(h1,1,x);
y = filter(h2,1,y1);

% method 2
h = conv(h1,h2);
y = filter(h,1,x);


So you were on the right track when you convolved the two impulse responses. Note that linear convolution is what you need, not circular/cyclic convolution.

As for the multiplication with $z^{-q}$, where I hope that $q$ is an integer, you need to understand that it is not the (time-domain) signal that is being multiplied, but that this multiplication refers to the Z-transform of the signal. In the Z-transform domain, a multiplication with $z^{-q}$ corresponds to a delay of $q$ samples.

Finally, regarding your expectation that the cut-off frequency of the cascaded system is $\pi/4$, note that the frequency response of the cascaded system is simply the multiplication of the two individual frequency responses, so the cut-off frequency does not change significantly (it may change a bit depending on how you define it). The transition from pass band to stop band will be steeper, and the stop band attenuation increases, but the start of the transition band remains unchanged. If both filters are identical you will basically get a better low pass filter with the same pass band and stop band edges.