The log messages before command line arguments have been parsed will not have microseconds. Make parsing robust to lack of microseconds so that sorting is done correctly, and make their timestamps show as '.000000' to line up the log.
Before (note the weird sorting and ordering):
node0
2018-05-02T12:16:13Z
node1
2018-05-02T12:16:13Z
node2
2018-05-02T12:16:13Z
test 2018-05-02T12:16:13.310000Z TestFramework (INFO): Initializing test directory /tmp/testdssm30sn
After:
node0 2018-05-02T12:16:13.000000Z
node1 2018-05-02T12:16:13.000000Z
node2 2018-05-02T12:16:13.000000Z
test 2018-05-02T12:16:13.310000Z TestFramework (INFO): Initializing test directory /tmp/testdssm30sn
test 2018-05-02T12:16:13.314000Z TestFramework.node0 (DEBUG): bitcoind started, waiting for RPC to come up
test 2018-05-02T12:16:13.316000Z TestFramework.node1 (DEBUG): bitcoind started, waiting for RPC to come up
test 2018-05-02T12:16:13.319000Z TestFramework.node2 (DEBUG): bitcoind started, waiting for RPC to come up