Is the difficulty target always truncated for practical purposes?
When mining, is the truncated target used (the one you get from bits), as opposed to the more accurate target you get by dividing the maxtarget by the difficulty?


Yes. The bits value actually stored in headers is what matters, as this allows validation of standalone headers without context. Due to headers-first sync this is no longer strictly needed, but there is no reason to change the rules now.


  Therefore, for all practical purposes, you should truncate the target you get when you divide the maxtarget by the difficulty?


Yes.

There is at most a 0.0015% difference between the two, though (1 in 2**16).