magento 1.9 – How to assign custom options to auto added products trough observer?

Im stuck on assign custom options to auto added products trough observer.

Im able to assign custom option to the main product which is added by frontend:

            $event = $observer->getEvent();
            $item = $event->getQuoteItem();
            $product = $item->getProduct();
            $quote = $item->getQuote();

            $configRelation = array(
                'options' => array(
                     'label' => 'relationkey',
                     'value' => $this->generateRandomString(5, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
                )
            );

            $item->addOption(new Varien_Object(
                array(
                    'product' => $product,
                    'code' => 'additional_options',
                    'value' => serialize($configRelation)
                )
            ));

            $quote->addItem($item)->save();

This working well, but then on next step Im adding a additional product:

                $additionalProduct = Mage::getModel('catalog/product')->load($idofexistingProduct);

                $params = new Varien_Object(
                    array(
                        'product' => $additionalProduct,
                        'code' => 'additional_options',
                        'value' => serialize($configRelation),
                        'qty' => 1
                    )
                );

                $quote->addProduct($additionalProduct, $params);

This one adds the $additionalProduct well, but I dont have custom option like on the main product.

I tried to init the cart model resource and addProduct without quote, but this causing a timeout, I think its entering a endless loop because of the observer.

The main reason for this is to relate multiple products with the main product.