There's multiple reasons. The way how hashcat exploits some weakness in MD5 to get additional acceleration requires it to change only the first 4 bytes of the input data. Since this part is fixed (because of the salt) it cannot use the acceleration.
For half MD5 it's completely different and therefore a bit confusing how you go from md5(p.s) to half-md5. For half MD5 the hash is not known in full, therefore we can not reverse the internal hash state up to a certain point to do the early reject.
For half MD5 it's completely different and therefore a bit confusing how you go from md5(p.s) to half-md5. For half MD5 the hash is not known in full, therefore we can not reverse the internal hash state up to a certain point to do the early reject.