It was a faulty cam position sensor + faulty AFM. Seems to be running sweet now.
$500 all up (the Cam Position Sensor alone was $210).
FYI: a DIY check engine light can be made by bridging out one of the connectors under the bonnet, and inserting an LED into part of the socket.