Currently, in order to bill based on time and material with multiple appointments on a single invoice, you must configure the billing cycle to bill by appointment, grouped by service order. This configuration in itself has some issues. For example, if grouping by service order, it should not allow you to invoice from the appointment screen (this defeats the grouping option). You also have to leave the service order and "Run Appointment Billing" in order to consolidate into one invoice.
A better alternative would be to allow for three billing options in the BILLING CYCLE:
Run billing for - Appointments (for those who still want to bill it this way)
Run Billing for - Service Orders by Estimate
Run Billing for - Service Orders by Actual
This third option would eliminate the need for the outside process "Run Appointment Billing". This would also allow the users to run the "Quick Process".
Another option might be to let the "Billing Rule" at the line level determine how the billing total calculates. For example:
If "Flat Rate" - bill based on the Estimated amount
If "Time" - bill based on the Actual amount