I think we should strive to make code clearly understandable and I have hard time thinking where "boolean loop" is clear. Trying to use a "boolean loop" may seem slicker in code, but I think it detracts from the understandability and maintainability of the code.
I distilled what you described:
so if FYEProcessing is False, run this loop one time, if FYEProcessing is true, run it twice
into
so if FYEProcessing is False, run this loop one time [with false], if FYEProcessing is true, run it twice [with false, then true]
or
run this loop one time with false. If FYEProcessing is true, run it again with true
CreatePaymentRecords(TermDates, false);
if (FYEProcessing) {
CreatePaymentRecords(TermDates, true);
}