How does business key works?

@rusiarohit take a look at:

Can we set business key after the instance has been created? If so, how?

no, business must be set at process start.

Also, according to Submit Task Form API documentation, it is supposed to be unique but I am able to create 2 process instances with same business key? Am I missing something in reading it right?

Business key is unique to your purpose: such as a CRM case, Shopping Cart ID, Order ID, etc

See the link above for more details such as alternatives to Business Key, benefits of Key, etc.