Tldr; jump to the $(\ast)$.
The category $Top$ of topological spaces is complete and cocomplete. That is, all limits and colimits exist in the category. On the other hand, the homotopy category $hTop$, formed by quotienting out the (weak) equivalences, is neither complete nor cocomplete. In fact while it has products and coproducts, it has very few other limits or colimits. See here for some examples of pullback/pushout squares which do not exit in $hTop$.
The point is that the strict fibre of an arbitrary map $f:X\rightarrow Y$ over a point $y\in Y$ is the equaliser of the two maps $f,c_y:X\rightrightarrows Y$, where $c_y$ is the constant map at $y$. Now this is not a good homotopical notion, in general, due to the lack of limits in $hTop$. It is a theorem that if a category has equalizers and finite products then it has all finite limits, and we have already noted above that $hTop$ does not even have all pullbacks. Since it has products $hTop$ cannot have all equalisers.
To see exactly what goes wrong consider the fact that the strict fibres of $f:X\rightarrow Y$ over the different points of $Y$ will not in general have the same homotopy type (even keeping within the same path component). For instance consider the map $S^1\rightarrow \mathbb{R}$ induced by projecting onto the first coordinate; the fibres are either empty, have one point, or have two points.
A sufficient condition that all the strict fibres over all points in a given path component have the same homotopy type is that the map $f$ is a fibration. And this is what the homotopy fibre does: it replaces the map $f$ by a fibration $p_f:E(f)\rightarrow Y$ and then takes its strict fibre over a given point. For everything to make sense we require some comparison map $j_f:X\rightarrow E(f)$ which is a homotopy, or at least weak, equivalence, and that everything should be natural - in the mathematical sense - at least up to homotopy.
Note that this 'up-to-homotopy' comparison map $j_f$ is the best we can do, for if $j_f$ were a homeomorphism, then the map $f$ would already be a fibration, and its homotopy fibres would just be its strict fibres. Thus if it were always possible to replace a map by a fibration up to homeomorphism, then there would be no need for homotopy fibres to begin with.
$(\ast)$ Now, the point is that the homotopy fibre of a map $f:X\rightarrow Y$ does not really live in $Top$. Since at best we can ask for the map $j_f$ to be a homotopy equivalence, the homotopy fibre of $f$ really lives in the homotopy category $hTop$ where it makes sense to consider the objects $X$ and $E(f)$ as the same. And now in the homotopy category everything is perfectly canonical, since $X$ and $E(f)$ are the same object as seen through categorical eyes. For example in the path space fibration we no longer have to pick an evaluation, since all these maps are homotopy equivalent, and thus represent the same morphism in $hTop$.
Thus we realise that the object $E(f)$ is nothing but an auxiliary construct. It is a point set lift of the problem in $hTop$ to a problem in $Top$. It allows us to create a more understandable model for the problem by using spaces with points, and maps defined on elements, rather than having everything 'up-to-homotopy'. However there is no canonical way to achieve this. For, just as the strict fibres of an arbitrary map $f:X\rightarrow Y$ may be badly behaved, the fibres of the projection $Top\rightarrow hTop$ are not uniform. Asking for a canonical section of this map is too much.
Thus we content ourselves with mathematically natural (again, up to homotopy) constructions point-set constructions, happy with the knowledge that once we project the problem back to $hTop$ we truly do have something safe and canonical.
Best Answer
You have made the key observation that $P$ is the pullback of $E\to B\leftarrow B^I$. Next note that a homotopy $f: X\times I\to B$ corresponds to a map $X\to B^I$, which I'll abuse the notation and also call $f$. There is also the lift of $f|_{X\times\{0\}}$, which I will call $\tilde{h}_0$. Thus you can form a pullback cone from $X$ to $E\to B\leftarrow B^I$. (See the diagram below.)
The fact that this cone out of $X$ commutes depends on the definition of the map $B^I\to B$, which evaluates every path at $0$, so the composition $X\to B^I\to B$ is precisely $f|_{X\times\{0\}}$, i.e. the "starting map" of the homotopy $f$.
Now you have a factoring through the pullback $P$. Composing the factoring map $h: X\to P$ with the section $s$ gives you a map $X\to E^I$, which corresponds the desired lifting.
The converse follows by applying the homotopy lifting property to $P\to B^I$ and $P\to E$. Essentially, we put $P$ in the place of $X$ in the above diagram.
The left map $h: P\to B^I$ defines a homotopy out of $P$. The top map $\tilde{h}_0$ is a lifting of the "starting map". The homotopy lifting property then gives us a lifting $s: P\to E^I$. This is our section.
Finally you can check that the fact that $s$ is a lifting of $h$ that extends $\tilde{h}_0$ guarantees that $q\circ s$ factors the outer pullback cone, but since the identity map on $P$ also satisfies this property, we must have $q\circ s = \operatorname{id}_P$.