In Java redstone, sticky pistons do not retract their blocks on 1 tick pulses if they have pushed it in the same pulse. I may be wrong, but I believe this is a bug due to piston timings. However, it is a very useful bug that allows various redstone mechanisms to be built, by pistons alternatingly push or pull blocks. This behavior does not exist in Bedrock edition. Assuming this is a bug in java, and therefore won't be ported to Bedrock, I have a suggestion to bring parity between two editions. I'd like to have a new piston type that can work as a regular piston and sticky piston alternatingly. Let's call this a "configurable .piston"
A configurable piston switches between sticky and non-sticky states every X times it extends. X can be configured by "use" action (exactly like repeaters). For example, when first placed it would start with X=1, therefore it would start as non-sticky, and switches to non-sticky when it extends, switches back when it extends a second time and so on. Applying "use" action on it would configure it to be X=2, therefore it would need to extend 2 separate times before it switches states. It can be configured with 4 different values (similar to repeaters).