The first duty-cycle readings you got were for a car running rich beyond the systems capability to correct. When you leaned it out it should have done OK.
What you have to realize is that the mixture can not be controlled at lambda when the engine is cold. The 30 secs that it took to start heading to 11% was the time it took the heater and the exhaust to warm the sensor. During that time you ran off the basic mechanical fuel settings which you have now leaned out.
Now you have to check a couple other things. The first thing is that the oscillating 48-52% duty-cycle should be much the same at any constant speed. Once the system is warm and oscillating at 48-52 hold the engine speed at 2000rpm and verify the values are close. A change of more than 10 should be investigated.
Also did the engine idle well in the closed loop condition (closed loop refers to the concept that mixture is being corrected rich/lean/rich/lean to achieve an exact ratio of fuel to air - it also assures an ammount of O2 getting in the cats) Closed loop is the condition of oscillating from rich to lean and back (48% is richer than 52% etc). Many engines will not run as lean as is necessary; due to carbon build-up or restrictions in the injectors that cause the mixtures to vary cylinder to cylinder. When we express mixture we usually do it in terms of the CO (carbon monoxide) percentage. A proper closed-loop engine is running between .3 and .8 %CO. The problem comes when cylinders are different. Often motors with vacuum leaks or injector faults will need to have the whole mixture brought as high as 3% CO in order for one or more cylinders to have enough fuel to individually reach .5% and start running.
On a rough running motor I always depress the airflap (to momentarily enrich) to see if fuel mixture is the problem.
Basically what I am saying is that you did good, in set-up but you have uncovered a problem that was probably covered up by over enriching. If the problem is minor I would start by adjusting the closed loop warm to about 25-30%. This gives you a basic mixture considerably richer (which WILL help cold before lambda takes over) and still leaves you in the range where closed-loop can take place. BTW I personally set all cars a little rich (around 40%) to avoid the problems you are encountering.