Hi - agree that it may not be so intuitive but @sync only works when it wraps @async calls directly, i.e. there cannot be function boundaries between them.
Instead, remove all @async from your init() functions and instead place them directly within the @sync block.
Like
@sync begin
@async …
@async …
…
end