@pavel, your query returns the right results and is extremely fast!
Query 3:

I'm attaching the 3 query execution plans:
Query 1 exec plan (wrong results):
Distinct [#1]
`─ Projection(?obs, ?actDate, ?actVal, ?pasDate, ?obs1, ?pasVal) [#1]
`─ Bind((?riuscvic + "-PT15M"^^xsd:duration) AS ?pasDate) [#1]
`─ MergeJoin(?obs1) [#1]
+─ Scan[PSOC](?obs1, <http://www.w3.org/ns/sosa/resultTime>, ?pasDate) [#32.1M]
`─ Filter(?actVal > (?pasVal + "+500"^^xsd:integer)) [#1]
`─ Sort(?obs1) [#1]
`─ NestedLoopJoin(_) [#1]
+─ MergeJoin(?obs) [#1]
│ +─ MergeJoin(?obs) [#12K]
│ │ +─ Scan[POSC](?obs, rdf:type, <http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#ObservationWithAverage>) [#36K]
│ │ `─ Scan[PSOC](?obs, <http://www.w3.org/ns/sosa/resultTime>, ?actDate) [#32.1M]
│ `─ MergeJoin(?obs) [#3.0K]
│ +─ Scan[SPOC](<http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#T4C39B>, <http://www.w3.org/ns/sosa/madeObservation>, ?obs) [#2.7M]
│ `─ MergeJoin(?obs) [#36K]
│ +─ Scan[PSOC](?obs, <http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#hasAVGResult>, ?actVal) [#36K]
│ `─ Scan[PSOC](?obs, <http://www.w3.org/ns/sosa/resultTime>, ?riuscvic) [#32.1M]
`─ MergeJoin(?obs1) [#1]
+─ Scan[POSC](?obs1, rdf:type, <http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#ObservationWithAverage>) [#36K]
`─ MergeJoin(?obs1) [#3.0K]
+─ Scan[SPOC](<http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#T4C39B>, <http://www.w3.org/ns/sosa/madeObservation>, ?obs1) [#2.7M]
`─ Scan[PSOC](?obs1, <http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#hasAVGResult>, ?pasVal) [#36K]
Query 2 exec plan (right results but slower):
Distinct [#1]
`─ Projection(?obs, ?actDate, ?actVal, ?pasDate, ?obs1, ?pasDate1, ?pasVal) [#1]
`─ Filter((?pasDate = ?pasDate1 && ?actVal > (?pasVal + "+500"^^xsd:integer))) [#1]
`─ NestedLoopJoin(_) [#1]
+─ Bind((?uaddryvr + "-PT15M"^^xsd:duration) AS ?pasDate) [#1]
│ `─ MergeJoin(?obs) [#1]
│ +─ MergeJoin(?obs) [#12K]
│ │ +─ Scan[POSC](?obs, rdf:type, <http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#ObservationWithAverage>) [#36K]
│ │ `─ Scan[PSOC](?obs, <http://www.w3.org/ns/sosa/resultTime>, ?actDate) [#32.1M]
│ `─ MergeJoin(?obs) [#3.0K]
│ +─ Scan[SPOC](<http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#T4C39B>, <http://www.w3.org/ns/sosa/madeObservation>, ?obs) [#2.7M]
│ `─ MergeJoin(?obs) [#36K]
│ +─ Scan[PSOC](?obs, <http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#hasAVGResult>, ?actVal) [#36K]
│ `─ Scan[PSOC](?obs, <http://www.w3.org/ns/sosa/resultTime>, ?uaddryvr) [#32.1M]
`─ MergeJoin(?obs1) [#1]
+─ MergeJoin(?obs1) [#3.0K]
│ +─ Scan[SPOC](<http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#T4C39B>, <http://www.w3.org/ns/sosa/madeObservation>, ?obs1) [#2.7M]
│ `─ Scan[PSOC](?obs1, <http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#hasAVGResult>, ?pasVal) [#36K]
`─ MergeJoin(?obs1) [#12K]
+─ Scan[POSC](?obs1, rdf:type, <http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#ObservationWithAverage>) [#36K]
`─ Scan[PSOC](?obs1, <http://www.w3.org/ns/sosa/resultTime>, ?pasDate1) [#32.1M]
Query 3 exec plan (right results and the fastest):
Distinct [#1]
`─ Projection(?obs, ?actDate, ?actVal, ?pasDate, ?obs1, ?pasVal) [#1]
`─ Filter(?actVal > (?pasVal + "+500"^^xsd:integer)) [#1]
`─ HashJoin(?pasDate) [#1]
+─ MergeJoin(?obs1) [#1]
│ +─ MergeJoin(?obs1) [#12K]
│ │ +─ Scan[POSC](?obs1, rdf:type, <http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#ObservationWithAverage>) [#36K]
│ │ `─ Scan[PSOC](?obs1, <http://www.w3.org/ns/sosa/resultTime>, ?pasDate) [#32.1M]
│ `─ MergeJoin(?obs1) [#3.0K]
│ +─ Scan[SPOC](<http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#T4C39B>, <http://www.w3.org/ns/sosa/madeObservation>, ?obs1) [#2.7M]
│ `─ Scan[PSOC](?obs1, <http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#hasAVGResult>, ?pasVal) [#36K]
`─ MergeJoin(?obs) [#1]
+─ Scan[PSOC](?obs, <http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#hasAVGResult>, ?actVal) [#36K]
`─ MergeJoin(?obs) [#1]
+─ Scan[POSC](?obs, rdf:type, <http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#ObservationWithAverage>) [#36K]
`─ MergeJoin(?obs) [#1]
+─ Scan[PSOC](?obs, <http://www.w3.org/ns/sosa/resultTime>, ?actDate) [#32.1M]
`─ MergeJoin(?obs) [#1]
+─ Scan[SPOC](<http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#T4C39B>, <http://www.w3.org/ns/sosa/madeObservation>, ?obs) [#2.7M]
`─ Projection(?obs, ?pasDate) [#12K]
`─ Bind((?npmdbixb + "-PT15M"^^xsd:duration) AS ?pasDate) [#12K]
`─ MergeJoin(?obs) [#12K]
+─ Scan[PSOC](?obs, <http://www.w3.org/ns/sosa/resultTime>, ?npmdbixb) [#32.1M]
`─ MergeJoin(?obs) [#36K]
+─ Scan[POSC](?obs, rdf:type, <http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#ObservationWithAverage>) [#36K]
`─ Scan[PSC](?obs, <http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/demo#hasAVGResult>, _) [#30K]