Your problem is not likely the vanos. Here's a list of common performance problems.
The idle control valve air intake boot branch gets cracks in the outer elbow accordion valleys. This can be inspected with a flashlight and mirror.
The idle control valve gets gummed up and sticks. Take it out and clean it with brake cleaner and towels.
The DISA valve is problematic on 01+ cars.
The DISA is a black box 4" high 6" wide on the side of the intake manifold adjacent to the MAF. Remove it. The flap should rotate with resistance and spring back when released. It shouldn't have any play. It breaks at its base axis. If it's broken, the flap end axis pin can be removed and the flap will fall off.
The 01+ DISA has a base gasket built into the DISA. It shrinks over time and creates a small vacuum leak. Place an 8" piece of electrical tape on a table top. Cut the tape half width with a razor knife. Place one layer of half width electrical tape over the base gasket. This will thicken the gasket and create a tight seal with the intake manifold.
The crankcase vent valve and 4 associate hoses fail and cause a vacuum leak. The valve gets stuck open and the hoses crack. These last 70-120k miles and usually fail 80-90k miles. Here are a couple diagnoses.
At warm idle, place a small plastic freezer storage bag on its side over the oil fill hole. If the bag sits on top or gets slightly sucked in, ~1", the valve is good. If the bag gets significantly sucked in the hole the valve is stuck open and bad.
With the engine off and cold, carefully remove the hose at the valve cover front corner. Blow hard into the hose. You should hear oil bubbling in the oil pan. If you don't hear the bubbling the top or bottom hose is likely cracked. The bottom hose often breaks just below the valve connection. There can also be cracks in the other two hoses.
The MAF sensor can be dirty and not perform well or can be failing. Aftermarket oiled air filters foul the MAF.
Take out the MAF and clean it with CRC MAF spray cleaner. Spray the MAF lightly. There are delicate wires that can be damaged. Let the MAF fully dry before reconnecting.
Cold air intake setups can drive the MAF beyond its intended operating limits and cause it to fail.
The MAF can be tested by disconnecting its electrical cable connector. If the performance problem resolves it might be the MAF. But this test can be deceiving and should be used with great care. When the MAF is disconnected the DME will err on enriching the air/fuel mix. This can easily cover up another performance problem like a vacuum leak. If the problem is unchanged after disconnecting the MAF the problem is not the MAF.
Aftermarket MAF sensors don't work.
The fuel filter gets clogged and inhibits the flow of fuel. Replace it every 60-100k miles.
Sparkplugs should be replaced every 60k miles.
Replace air filter every 15k miles.
Pre-cat O2 sensors have a lifespan of 100k miles. They have a significant effect on fuel consumption. They also affect performance. When they start degrading they cause a rich air/fuel mix. This will degrade performance some but will not cause any rough running symptoms. The main symptom is degraded fuel consumption.
The pre-cat O2 sensors are not used on cold weather cold start. The O2 sensors don't function when cold and are thus not utilized by the DME.
Aftermarket O2 sensors don't work.
Camshaft position sensors can fail and cause problems. They will usually produce a code, but they might initially malfunction without producing a code. A failing exhaust CPS will cause light performance problems. A failing intake CPS can cause significant performance problems.
Aftermarket CPS sensors don't work. OEM CPS sensors are only available through BMW. OEM CPS sensors have a BMW logo or series of numbers and this can be used to check if a CPS sensor is OEM.