Joins the two halves the way firmware does. A blank longName yields the bare callSign — firmware treats unset and whitespace-only alike, so composing a separator for either would not match what the node stores.