This is what I ended up using to properly code an EST date/time for my API orders:
I charge immediately, using the chargeInvoice() method, so I can't tell you much about the finesses of using payment plans, for which I've never had any use.
$date = new DateTime();
$OrderDateTime = $date->format('Ymd\TH:i:s');
As you'll note in the code above, I do not use the infuDate() method to compute/generate an order date. I don't know which parameters you're passing to infuDate(), but in this timezone business, I found it safer to do it as above.
I ended up doing it this way because it drove me absolutely nuts. What worked during the day, stopped working at night and I would get the message 'SKIPPED (there was no balance to charge)'.
By now my former problems should sound eerily familiar.
My entire script was fine and required no other changes EXCEPT to correctly assign a timezone-adjusted date/time during "blankOrder()".
Once I did that, my orders would process correctly day and night.