What is the correct way to implement PBKDF2 + AES CBC + HMAC?
You'll find there's a lot of splitting hairs regarding this topic, especially key derivation. But yes, your pseudocode is fine, although you may want to revise (0, 128) => (0, 127) and (129, 256) => (128, 255) ... (correct me if I'm wrong?). Also, you might want to implement a constant-time comparison function for verifying the mac.


  Have I derived the keys correctly, splitting them in half based on the
  output of the KDF?


This is fine. Some people would disagree. See here here and here for more in-depth discussion.


  Am I computing the HMAC correctly by combining the iv + cipher. Does
  it matter if I had done cipher + iv instead?


Yes, you're computing the HMAC correctly. No, the order of cipher + iv does not matter at all. If it's available to you, you might want to consider a mode like GCM, which takes care of encryption and authentication for you with a single key.