Replica shards do not get assigned (not consistent), even though they can

Have you tried increasing total_shards_per_node to 3 and then reduce it back to 2 to force reallocation? You could also use the the cluster reroute API to move one of the existing shards.