Here's a fact related to the current discussion, which I have formalized today.  I would appreciate knowing
whether it's already known.  It gives a criterion for factoring through the propositional truncation
when the target is of h-level 3.

  Definition squash_to_HLevel_3 {X : UU} {Y : HLevel 3}
             (f : X -> Y) (c : ∏ x x', f x = f x') :
    (∏ x, c x x = idpath (f x)) ->
    (∏ x x' x'', c x x'' = c x x' @ c x' x'') ->
    ∥ X ∥ -> Y.

You may find it in WellOrderedSets.v on one of my branches.