I don't get all the details yet but shared Heads seems to be considered later in layoutChord2. Do we need this there? 
Why are we hiding notehead? I think it's because of the MIDI playback. Hidden notes are not considered while creating the MIDI stream and so we avoid having note on note on note off note off sequences. That's also why the  actualticks values are used, to make sure that we hide the shortest one only.