Here is a pretty long path that does not visit any square twice, but misses misses a few spots:
To turn this into a solution, we have to add a few extra moves to mow those missed spots:
The five squares inside of the P will take 8 extra moves to mow.
The other five loose unmowed squares can be done individually using 2 moves each.
That gives a total number of moves of:
96+8+10=114 moves
I don't know if this is optimal