Persistent vs system started trigger

Hi !
I had a problem with restoreonstartup function on mapDB and rrd4j persistence.
Today I recognized that it is due to my initialization function with system started trigger, like this:

rule "Initialize"
	when
		System started
then
{
	Thread::sleep(120)
	if (Heater_Counter_Week.state == Undefined || Heater_Counter_Week.state == Uninitialized)
		postUpdate(Heater_Counter_Week, 0)
	if (Heater_Temp_Diff.state == Undefined || Heater_Temp_Diff.state == Uninitialized )
		postUpdate(Heater_Temp_Diff, 0)

When I commented it, all items was recovered properly. Anyway I prefer to keep such protection again errors.
My config/order is as follows:

folder:items=10,items
folder:persistence=11,persist
folder:sitemaps=14,sitemap
folder:rules=50,rules
folder:scripts=35,script

and log:

2016-11-23 22:41:29.606 [INFO ] [.o.core.internal.CoreActivator] - openHAB runtime has been started (v1.8.3).
2016-11-23 22:41:35.212 [INFO ] [o.o.i.s.i.DiscoveryServiceImpl] - mDNS service has been started
2016-11-23 22:41:42.834 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'moj.items'
2016-11-23 22:41:44.916 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'mapdb.persist'
2016-11-23 22:41:45.019 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'db4o.persist'
2016-11-23 22:41:45.056 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'rrd4j.persist'
2016-11-23 22:41:45.408 [INFO ] [penhab.io.rest.RESTApplication] - Started REST API at /rest
2016-11-23 22:41:46.011 [INFO ] [.r.i.resources.SitemapResource] - Received HTTP GET request at 'http://192.168.1.106:8080/rest/' for the unknown sitemap 'moj'.
2016-11-23 22:41:46.011 [INFO ] [.r.i.resources.SitemapResource] - Received HTTP GET request at 'http://192.168.1.106:8080/rest/' for the unknown sitemap 'moj'.
2016-11-23 22:41:47.739 [INFO ] [penhab.io.rest.RESTApplication] - Started REST API at /rest
2016-11-23 22:41:47.752 [INFO ] [.r.i.resources.SitemapResource] - Received HTTP GET request at 'http://192.168.1.106:8080/rest/' for the unknown sitemap 'moj'.
2016-11-23 22:41:48.398 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'moj.sitemap'
2016-11-23 22:41:49.064 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'tablet.sitemap'
2016-11-23 22:41:49.590 [INFO ] [penhab.io.rest.RESTApplication] - Started REST API at /rest
2016-11-23 22:41:49.654 [ERROR] [.s.container.ContainerResponse] - The RuntimeException could not be mapped to a response, re-throwing to the HTTP container
2016-11-23 22:41:55.360 [INFO ] [o.o.i.s.i.DiscoveryServiceImpl] - Service Discovery initialization completed.
2016-11-23 22:41:56.055 [INFO ] [penhab.io.rest.RESTApplication] - Started REST API at /rest
2016-11-23 22:42:05.757 [INFO ] [penhab.io.rest.RESTApplication] - Stopped REST API
2016-11-23 22:42:11.251 [INFO ] [penhab.io.rest.RESTApplication] - Started REST API at /rest
2016-11-23 22:42:20.333 [INFO ] [.service.AbstractActiveService] - Modbus Polling Service has been started
2016-11-23 22:42:22.670 [INFO ] [.o.io.habmin.HABminApplication] - Started HABmin REST API at /services/habmin
2016-11-23 22:42:25.349 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'moj.rules'
2016-11-23 22:42:42.074 [ERROR] [o.o.c.s.ScriptExecutionThread ] - Error during the execution of rule 'Set Point update night': Cannot cast org.openhab.core.types.UnDefType to org.openhab.core.library.types.DecimalType
2016-11-23 22:42:53.591 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'rolety.rules'

and events log starts after 51s:
> 2016-11-23 22:42:20 - Went_Temp_Zewn_M state updated to 76
> 2016-11-23 22:42:20 - Went_Temp_Wywiew_M state updated to 198

What is wrong ?
Why during those 40s (between loading persistence and rule files) items are not recovered ? Is it not enough time (except few items the rest is configures in mapdb) to restore value ?

why report file starts after 50s, does it mean that up to this moment items are undefined ?

Or maybe my if condition is incorrect (Undefined, Uninitialized) - when I removed Uninitialized condition rule was not executed (so condition was not met) … so does it mean that after 40s items are defined but still unitialized ?