Well, I'm an idiot.
It may not be the prettiest solution but in all of my searching nobody has actually posted a solution for the MKR Zero. It appears to be a simple timing issue. A delay(xxx) won't work, but a simple for() loop does the trick. It allows the micro to run and finish initializing the Serial, but doesn't actually require a computer connection to monitor the serial. This allows the MKR Zero to be powered by a USB cable (from a power supply of your choice) and NOT connected to a computer.
Solution = Replace the "while(!Serial){}" with a for() loop.
Example:
void setup() {
Serial.begin(9600);
// while (!Serial) {
// ; // wait for serial port to connect. Needed for native USB port only
// }
for (int i = 0; i <= 10000; i++) { // Eliminates the need for the "while (!Serial){}" above.
;
}