Unfortunately I did not have the luxury (time) to try this out myself, so a BIG thank you to Richard.
However, I managed to call IB API support and was suggested the following:
Create 5 (!!!) orders
1. Position opening order (assume ID is 1)
2. Stop loss order for the full amount (assume ID is 2) + set parent to 1
3. Take profit order for HALF of the amount?(assume ID is 3) + set parent to 1
4. Take profit order for HALF of the amount at the other price level (assume ID is 4)? + set parent to 3
5. Stop loss order for HALF of the amount (assume ID is 5) + set parent to 3
When position opening order fills, orders with ID 2 and 3 will get activated.
If stop loss order 2 fills, the take profit 3 will get cancelled and orders 4 and 5 will never activate.
If take profit order 3 fills, the stop loss order 2 will get cancelled, and orders 4 and 5 will get activated and will belong to a NEW OCA group.
I will try this out and will post my findings.