That would be and is the correct calculation for positive numbers, to centre on the block for a negative number it should be a subtraction. ie. -1 + -0.5 or -1 - 0.5 = -1.5 this would correctly target you in the middle of the TP destination
in the provided example of /tp -4444 ~ -4444 the result should have been -4444.5 ~ -4444.5 (not -4443.5 ~ -4443.5)
Seem to have had the same issue on 20w21a, running on a Ubuntu 20.04 Server. When getting too close to the tiaga village the server would crash, the game also crashed when I downloaded the world and played in single-player mode.
my seed is 681878832968391 and resolved by deleting chunks (12, -53 to 15, -56) using NBTexplorer.
This world was created new on 20w21a, not sure why the first time generation would have caused the issue, but after deleting the 16 chunks it re-generated just fine on the server and it no longer crashes. I probably could have narrowed it down some more but didn't feel like dealing with even more crashes.
I do have access to all the crash reports and server logs if needed. The latest crash report is attached.
[media]
corrected description, it is rounding up not down for negative numbers