Thank you for the report. I note that 1 is not a bug.
Looking at no. 2, there are two relevant things here. First of all, the maximum diversion tiles is set to 25 and some of the diversionary routes necessary from this tile are exactly 25 tiles. I have just modified the code so that, if the diversionary route is less than or equal to (rather than just less than) the number of specified tiles, the route will be acceptable.
However, this does not allow that tile to be deleted. This is because one of the three diversionary routes necessary, that between 983,946 and 983,944 is measured as requiring a diversionary route of 33 tiles, whereas the maximum is 25. Having counted the tiles manually, it seems that it ought to be counting 23 tiles. The trouble is that the calculation of this route is done in intern_calc_route, which is complex code largely unchanged from Standard and very hard to debug. This is the basic vehicle pathfinding code, so, if there is an error here, it is a fundamental and very difficult error to deal with, and is not specific to the diversionary route system, and may even be common to Standard.