Arduino locks up, powering down doesn't fix but serial monitor does

dnwheeler:
You should switch to using normal C strings (null-terminate arrays of characters).

Not resetting when cycling power is something else. I would agree with DrAzzy that the board must be getting power from somewhere (and yes, it could even be supplied through one of the IO pins).

Thanks for your comment. Can you please give me more of a hint as to what to use instead of String?

Also, would not the LEDs on the Uno board and the WiFi board stay light if it was still getting power - they aren't.