I usually put the engine in debug mode if I am going to be logging a lot of data. Also, robocode does increase your processing time allowed if you do any file IO.
But debug mode disables security iirc? Then this mode is unsafe for running with arbitrary opponent. Also it seems that skipped turns has no special handling if you do IO. It just increases the max skipped turns allowed before you get disabled
Java already has nonblocking IO support, may be we should support this in robocode as well. Currently doing so requires disabling security.