How can I make 2 separate meshes blend seamlessly while keeping them as separate meshes?
Position all mesh joins under the clothing.

In fact you shouldn't need to "join" the meshes, you position a head and shirt so that the shirt is over the top of the neck vertices.

Another option is to have all clothing and head details in textures, so you always use one solid mesh. Maybe a collection of different complete character meshes with different texture options.