My apologies, I had left the office after my previous response. Looks good, a surface swimming state is one way to solve it. I’d recommend testing for edge cases like high speed ejection from the water as well.
Did your fix resolve the issue entirely?