Intrigued by your post I decided to experiment and set up a scene to toggle one of my devices. It behaved exactly as expected, i.e. when run it changed the state of the device and after changing the state of the device it remained in that state until the some other action was performed.
This was observed on a Vera Plus running firmware 7.0.29 (1.7.4453)
Is it possible that the scene that is meant to “toggle” the output has somehow got another action included in it? It is possible to list all your scenes by opening a new browser tab/window and inputting http://Your.VP.IP.address:3480/data_request?id=objectget&key=scenes&output_format=xml, where Your.VP.IP.address is modified appropriately. The resulting output should list all your scenes in xml format. You can then scroll down and look at the settings for a particular scene. The listing for my test scene is :-
<scene id="33" last_run="1575362712" encoded_lua="0" lua="" modeStatus="0" users="" triggers_operator="OR" room="2" name="Hall Light Toggle" Timestamp="1575361919" active_on_any="0">
<groups>
<group delay="0">
<actions>
<action action="ToggleState" service="urn:micasaverde-com:serviceId:HaDevice1" device="18">
<arguments/>
</action>
</actions>
</group>
</groups>
<triggers/>
<timers/>
</scene>
The “scene list” also provides a way of checking what other scenes are controlling a particular device, i.e. search for device="##" where ## is the actual device number.