This sounds silly, but have you checked the fuel pump? I had almost identical symptoms on 2 e46's and both times it turned out to be the fuel pump.