The opendj_services.exe that starts the OpenDJ has a wait-hint of 5 sec. Now if OPENDJ_WINDOWS_SERVICE_STARTDS_WAIT is not set the OPENDJ service waits for the OPENDJ to start in 300 sec.
When one do "net start OpenDJ", this command will return after 20 sec with START_PENDING status if OpenDJ starts slower than 20 sec. If the OpenDJ backend is still starting but not failing yet (which is 300 sec), the state of the service may turn to STARTED or FAIL. The main issue here is that the net start return early (always 20 sec) and not synchronous to wait for the servcie to start/fail.
Ideally it would be good if this can be tunable (to be same as OPENDJ_WINDOWS_SERVICE_STARTDS_WAIT). (PS: you may want this to be wait-hint to be 1/3)
If net start returns START_PENDING, one may need to poll for some time until 30 sec or (OPENDJ_WINDOWS_SERVICE_STARTDS_WAIT) before confirming the state of the service.