I’m not familiar with the “stock” onewire library and code snippet posted here but just because the define is set does not mean the CRC check is actually being performed when reading the ds18b20 scratchpad. The define may only be there to include the crc code in the library, or use the crc code as part of onewire search. Its likely still up to you to use the crc code to check the ds18b20 scratchpad and take the correct action if the bus data was corrupted.
Checking the scratchpad CRC is the correct way to detect if the bus data was corrupted or not. Though as others have suggested here it may also be a good idea to time schedule when you access the bus to avoid known interference.
If the CRC check is being performed and temperature value is still incorrect it may be that there is such a voltage excursion on your ds18b20’s VCC pin that the sensor value is being reset. In that case I would consider adding an RC filter on the ds18b20’s VCC.
Agree here. There is probably a difference in timing inherent in the Arduino version that prevents the servo from moving at the same time as sampling the onewire bus.