How can I return an Arduino digital pin to floating state?
Have you considered using a bi-directional 5V/3V3 logic level converter circuit (typically just an appropriately-chosen N-channel MOSFET with a couple pull-up resistors). For example, search for "logic level shifter" on SparkFun.com (e.g., SKU# BOB-12009). The basic design is shown below in Figure 1.







simulate this circuit &ndash; Schematic created using CircuitLab

Figure 1.

Caveat: The 5V logic's output LOW voltage feeds through the MOSFET unmodified and is applied directly to the 3.3V logic input pin. Note that \$V_{OL}\$ for 5V CMOS logic is 0.9V, while \$V_{IL}\$ for 3V3 logic is 0.8V. However, in many cases, the logic LOW output voltage from the 5V logic side is well below 0.8V, and so this logic level converter circuit works fine for those cases.