You don't say whether you are using wired or wireless CBus but, in any event, the code "05380001013F' is not one that I recognise for feedback. In my CBus/pronto implementation, I only get feedback if I specifically request it. I do this by sending "\\05FF0073073800\r" (wired lights) or "\\03FD09FF73073800\r" (wireless lights). I then get back a string which I analyse using the published CBus message formats to understand which of my lights are on/off, which I then use in my Prontoscript if statements to do the appropriate toggle.
The other difference between what I do and what you seem to be doing is that I separate the receiving of feedback and the sending of commands. In other words, my logic is:
1. Enter the activity and initiate a loop which requests feedback every 30 seconds.
2. Whenever I press a toggle button, look at the current status of the corresponding light, toggle the light on/off and toggle the status accordingly.
This means that, when turning the light on/off (in step 2), I don't have to wait for any feedback on current status because that has already been obtained from my loop (in step 1).
Finally, your commands don't seem to include a checksum at the end and, given this, I'm a bit surprised that they work at all.