Arduino BoostController

As Paulcet said, you may be using bigger data types than you need in some places but, I am not sure either so I will leave that for someone else.

However, here is a part of your code that needs fixed.

if (((Lean >= 2)) && ((unsigned long)(millis() - LeanTime) > 250)) {//Check if lean for more than 250ms (.25 seconds) and lean more than 2 loops
    Cut = 1; //cut boost if too lean for too long

With this, because millis() is already assigned a data type.

if ((Lean >= 2) && (millis() - LeanTime) > 250) {//Check if lean for more than 250ms (.25 seconds) and lean more than 2 loops
    Cut = 1; //cut boost if too lean for too long
  }

You may want to consider using >= 250 as you will have to wait another loop if your millis() - Leantime equals 249 or less.

Also, in the terms of engines, wideband Air/Fuel sensors are fairly slow. Therefore, give yourself a wide margin when you are testing your ideas on your engine.