Fix some reentrant scenarios

If a command payload is pending, fix calls to raw_command by
deferring instance modification until the last command was settled.

Fix a deadlock scenario where packet transmit gets blocked by
waiting on incoming packets that will never come by avoiding
calling out to caller custom handlers which might expect to be
submitting new requests during transmit.

Fix a problem if command is requested while awaiting for an SOL
acknowledgement.

Change-Id: Ia352566819cce06c6e4e5279afeb6191838e0488