The packet being sent successfully is not an indication of it being received, as it returns instantly. Rather it indicates that you have the ID right and can send as such.
The best source for expected behaviour would be the official documentation. I think as of writing my doc, that version was not yet live, so my doc notes are based on whatever was mentioned in the source code for the example/headers.
"Reliable" packet types should be resent automatically and delivered in order they are sent in.
You should send a "ping" packet now and then and detect timeout if the player doesn't respond for X seconds.