You can break it down into two steps. Finding a vector in the direction of c and then finding the length of c.
Direction of c: First you're right in that we aren't guaranteed that we have a rhombus. So you make one! If you take the vector a/a, this is unit vector in the direction of a and magnitude 1. Likewise b/b is a unit vector in the direction of b. Since they both have length 1, when you add them, you do form a rhombus. So a/a + b/b has the direction we are looking for because the rhombus means we are bisecting the angle. This means that c = k ( a/a + b/b) for some number k.
Length of c: Length of c is given by sqrt(2ab). Since the length of a/a + b/b is |a/a + b/b|, we first divide by this to make it a unit vector, and then multiply by sqrt(2ab). If you simplify it, you should get something like (ba + ab) / |ba+ab| * sqrt(2ab).