How to control draw order in _draw()

You can try to manage z-orders and it should work.
But it is easier to add a CanvasItem node (or node that inherits CanvasItem) after the sprite node and override its _draw() function.
Here is an excellent answer to a similar question.