the lambda sensor could still be the cause, as long as its giving a reading then the ecu will assume its fine, but that doesnt mean the reading its giving is correct, a universal 4 wire sensor is only about £20 so its not gonna break the bank to try it.
id have thought the bmw engine would be better with mpg anyway, unless its a 6 cylinder