<font face="Arial, Verdana">i did some digging and come to some conclusions</font>
the 2 "issues" are related to the sledParked logic. about the double X homing, it happens when X is not the last axis in the order, because there is this at line 2068 in printer.cpp
<font face="Arial, Verdana">if(!sledParked && xaxis) { // park sled</font>
<font face="Arial, Verdana"> homeXAxis();</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">this is where the 2nd X homing gets called. i believe it may be there because of the probing stuff, because otherwise it would be just redundant as at that point X is at home for sure.</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">a potential "fix" would be to just force sledParked to true for homing orders without probing/temp but idk, code would be messy and redundant.</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">the other way, which i think would fix issue 2 too, would be to refine the sledParked logic to not unpark unless really necessary, but i guess it could get really complicated (it looks like it is enough already) and prone to errors</font>